2013-08-23 3 views
1

Я нашел достаточно времени, чтобы найти решение этой ошибки. При попытке кросс-компиляции Apache для Arm (я уверен, что это может произойти во многих других архитектурах), я хотел бы получить эту ошибку из с в папке сервера:Ошибка компиляции Apache Cross ./gen_test_char: невозможно выполнить двоичный файл

./gen_test_char: cannot execute binary file 

Это означает, что Apache пытается скомпилируйте этот генератор test_char.h для фактического устройства, в то время как мне нужно его запустить на моем Ubuntu, где я перекрестно компилирую. Ubuntu не распознает скомпилированный gen_test_char как исполняемый файл, поэтому мне нужно его правильно скомпилировать для Ubuntu.

ответ

1

Я искал и искал и нашел несколько попыток исправления, но ни один из них не работал. Большинство из них были исправлениями, предлагаемыми непосредственно из группы Apache dev.

Но я, наконец, натолкнулся на это Apache mail list. Он предлагает прямое решение, которое не могут предоставить исправления.

Скомпилируйте приложение gen_test_char, прежде чем пытаться перекрестно скомпилировать Apache. Так я и сделал. И последовали за предложениями, и это сработало как шарм.

вместо просто скомпилировать gen_test_char.c 1-ое что-то вроде: Gcc -Wall -O2 -DCROSS_COMPILE gen_test_char.c -s -o gen_test_char затем запустить его и положить его выход в заголовочном папку (или где его помещенный normaly);

и после этой компиляции запустите его, чтобы получить желаемый результат с:

./gen_test_char > test_char.h 
Смежные вопросы