Как сделать кросс-компиляцию моего приложения для архитектуры Ubuntu 12.04 armhf на хосте Ubuntu 12.04 i386?

У меня есть большое заявление, которое я написал. Я могу успешно скомпилировать приложение в следующих сценариях:

  • в нативной компиляции для хоста i386 под управлением Ubuntu 12.04
  • изначально на PandaBoard под управлением Ubuntu 12.04 (это занимает много времени )
  • с использованием Qemu и chroot на главном ПК для цели armhf PandaBoard (это занимает очень много времени)

Я хотел бы кросс-компилировать приложение на i386 хост для запуска на такой цели, как PandaBoard, для своевременного завершения сборки. До сих пор попытки, сделанные с использованием цепочки инструментов arm-linux-gnueabihf в репозиториях, дали двоичные файлы, которые работают неправильно. На данном этапе я не планирую упаковывать программное обеспечение.

Каков рекомендуемый способ успешного кросс-компиляции?

15
задан 5 January 2014 в 04:38

1 ответ

https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch

https://wiki.ubuntu.com/MultiarchCross [ 116]

В Ubuntu есть перекрестная цепочка инструментов, apt-get install gcc-arm-linux-gnueabihf, но работа над цепочкой инструментов следующего поколения обсуждается здесь: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm- linux-gnueabihf /

Существует ряд обходных путей, которые необходимы на этом этапе. Например, если вы используете косвенные ссылки (описанные на вики-странице linaro), вам также следует избегать запуска внешних двоичных файлов сразу после их компиляции.

Кроме того, это действительно самый зрелый с автоинструментами.

Я получил свой пакет для кросс-компиляции довольно быстро.

apt-get build-dep -aarmhf foo-pkg
apt-get source foo-pkg
cd foo-pkg-*
dpkg-buildpackage -aarmhf
0
ответ дан 5 January 2014 в 04:38

Другие вопросы по тегам:

Похожие вопросы: