Я пытаюсь скомпилировать Busybox с помощью Buildroot Cross-Compiler.
Вот шаги:
Загрузите Busybox и распакуйте его
Wget http://www.busybox.net/downloads/busybox-1.22.1.tar.bz2 && tar xjf busybox-1.22.1.tar.bz2
Настройте BusyBox и скомпилируйте
сделать menuconfig
make CROSS_COMPILE = / usr / local / cross-rpi / usr / bin / arm-linux-
(Путь к кросс-компилятору правильный)
Компиляция возвращает следующую ошибку:
CC networking/nslookup.o
networking/nslookup.c: In function ‘server_print’:
networking/nslookup.c:123:37: error: ‘struct <anonymous>’ has no member named ‘nsaddrs’
networking/nslookup.c: In function ‘set_default_dns’:
networking/nslookup.c:163:15: error: ‘struct <anonymous>’ has no member named ‘nsaddrs’
make[1]: *** [networking/nslookup.o] Error 1
make: *** [networking] Error 2
Если я не использую кросс-компилятор, все работает нормально.
Есть ли у вас какие-либо рекомендации?
До
сделать menuconfig
Сначала необходимо создать конфигурацию по умолчанию для кросс-компиляции busybox в зависимости от типа используемой платы.
сделать defconfig или же
make vexpress_defconfig // если используемая вами доска похожа на vexpress
Также одним важным аргументом является имя архитектуры. Если вы собираете busybox для ARM, вы должны передать это в качестве аргумента вместе с make
делать ARCH = рука CROSS_COMPILE =
Для более подробной информации о кросс-компиляции вы также можете обратиться
http://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARM