Ошибка в команде make busybox для mips

Недавно я попытался собрать busybox для архитектуры MIPS, следуя шагам, описанным в книге «Pro Linux Embedded Systems». Предварительно я успешно установил и настроил crosstool-ng для работы с MIPS.

В busybox я установил префикс CROSS_COMPILER для одного из присутствующих в каталоге x-tools (сгенерирован из crosstool-ng).

Однако при запуске команды make появляется следующее сообщение:

applets/applets.c:1:0: warning: cannot use small-data accesses for '-mabicalls'
 /* vi: set sw=4 ts=4: */
 ^
In file included from include/libbb.h:13:0,
                 from include/busybox.h:10,
                 from applets/applets.c:11:
include/platform.h:120:23: fatal error: byteswap.h: No such file or directory
 # include <byteswap.h>
                       ^
compilation terminated.
make[1]: *** [applets/applets.o] Error 1
make: *** [applets] Error 2

В этом смысле я спрашиваю: как решить эту проблему с отсутствующим заголовком? Нужно ли копировать из /usr/include или извлекать из исходного кода glibc или что-то в этом роде?


person Inácio Medeiros    schedule 22.02.2015    source источник


Ответы (1)


Ваш кросс-компилятор должен иметь MIPS-версии заголовочных файлов. Должны быть каталоги include и usr/include, содержащие файлы, такие как MIPS-версия byteswap.h. Возможно, вам потребуется указать аргумент --sysroot для gcc, чтобы указать, где расположены целевые заголовочные файлы.

Не копируйте заголовки из хост-системы, это приведет к незаметным ошибкам.

person markgz    schedule 23.02.2015
comment
Хм.. понял, markgz. Спасибо за ответ. Я собираюсь проверить это. - person Inácio Medeiros; 25.02.2015