Компиляция busybox для arm: фатальная ошибка: byteswap.h: такого файла или каталога нет - PullRequest
0 голосов
/ 26 мая 2018

Попытка построить busybox для архитектуры ARM

Обнаружена ошибка :

> In file included from include/libbb.h:13:0,
>                  from include/busybox.h:8,
>                  from applets/applets.c:9: include/platform.h:157:11: fatal error: byteswap.h: No such file or directory  # include
> <byteswap.h>
>            ^~~~~~~~~~~~ compilation terminated. scripts/Makefile.build:197: recipe for target 'applets/applets.o'
> failed make[1]: *** [applets/applets.o] Error 1 Makefile:372: recipe
> for target 'applets_dir' failed make: *** [applets_dir] Error 2

Хост-машина : Ubuntu 16.04 LTS

Арка целевой платформы : ARM

Используется цепочка инструментов : gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2

Busybox : busybox-1.27.2.tar.bz2

  • Настройка кросс-компиляции цепочки инструментов ипуть экспорта
  • Загрузить исходный код busybox, настроить и собрать

    $ export PATH = $ PATH: ~ / junk / bbb-src-bin / arm7-toolchain / gcc-arm-none-eabi-7-2017-q4-major / bin

    $ make ARCH-arm CROSS_COMPILE = ~ / junk / bbb-src-bin / arm7-toolchain / gcc-arm-none-eabi-7-2017-q4-major / bin / arm-none-eabi- defconfig

    $ make ARCH = arm CROSS_COMPILE = ~ / junk / bbb-src-bin / arm7-toolchain / gcc-arm-none-eabi-7-2017-q4-major / bin / arm-none-eabi- install

1 Ответ

0 голосов
/ 26 мая 2018

Для компиляции программы, работающей в Linux, вы используете компилятор, сконфигурированный для создания исполняемых файлов с открытым исходным кодом, т.е. исполняемых в системе без операционной системы.Это не сработает, по крайней мере, без особых усилий по переносу.

Вы должны использовать кросс-компиляторный набор инструментов с заголовками и библиотеками, которые поддерживают вашу целевую операционную систему.

...