Я уже задавал этот вопрос о переполнении стека, но мне хотелось бы знать, удалось ли кому-нибудь создать набор инструментов GCC 4.7 для кросс-компиляции ARM (для хоста Linux x86 / x86-64). Существует множество инструкций по сборке GCC из исходного кода и множество доступных кросс-компиляторов для версий до 4.7 GCC, но не самой последней.
Компиляция на самом Rasp Pi работает нормально, но она слишком медленная для практических целей.
Я очень хочу получить компиляцию, и я хотел бы использовать новейшие и лучшие инструменты.
software-development
cross-compilation
gcc
tlhIngan
источник
источник
Ответы:
Я нашел эти инструкции Как построить кросс-компилятор для вашего Raspberry Pi . Это отличный пример использования
crosstool-ng
инструмента, который упрощает настройку сборки LOT кросс-компилятора (он имеет хороший интерфейс на основе curses) и поддерживает GCC 4.7.Я выполнил эти шаги и закончил успешной сборкой 4.7 кросс-компилятора.
crosstool-ng
из здесь (я использовал версию 1.15.2)../configure
/make
/install
cd
него.ct-ng menuconfig
. Вам будет представлен хороший набор меню для настройки вашей сборки.Выберите подходящий каталог префиксов . Это каталог, в который будет установлен ваш компилятор и библиотеки (в принципе, все нормально, просто убедитесь, что каталог пуст).
Перейдите в меню параметров Target .
Вы также можете установить для параметра с плавающей точкой значение softfp (см. Это для получения дополнительной информации), но hardfp больше подходит для Raspbian.
Зайдите в меню C-библиотеки и выберите одну. По умолчанию используется eglibc, но он не очень хорошо для меня собран, поэтому я использовал glibc (самая новая версия).
crosstool-ng
ct-ng build
в том же каталоге. Подождите некоторое время (около 45 минут в моем случае), и ваш кросс-компилятор должен быть готов.Кажется, работает отлично!
источник
На самом деле, новейшие и лучшие инструменты не нужно создавать самостоятельно. В репозитории Raspberry Pi Tool GitHub вы найдете
X86_64
иx686
наборы инструментов для кросс-компиляции программного обеспечения.Я рекомендую использовать
x86-linux64-cross-arm-linux-hardfp
набор инструментов, так как он скомпилируется для Hard Floating Point, что приведет к гораздо более быстрой системе.Примечание. Если вы используете существующее ядро, вам придется использовать набор инструментов, соответствующий ядру. Приложения HardFP не будут работать на ядре SoftFP.
Для использования цепочки инструментов просто проверьте репозиторий:
--depth
Параметр будет означать , что вам не придется ждать , пока история хранилища для загрузки , а также (так как мы не будем использовать его).Затем добавьте двоичные файлы в переменную PATH:
Или сохранить ПУТЬ
Для компиляции с цепочкой инструментов вы можете добавить
CROSS_COMPILE
параметр. Например, при запускеmake
:Или, чтобы сделать это проще, вы можете сохранить переменную
bashrc
снова:и теперь используйте переменную при компиляции:
источник
Обратите внимание, что при построении цепочки инструментов с использованием ct-ng в centos 6.3 в 64-битной системе я был вынужден отменить выбор статической ссылки libstdc ++, потому что статическая связь не поддерживалась на платформе (очевидно).
Кроме того, хотя было бы здорово использовать предварительно собранный набор инструментов из репозитория git, эта цепочка, похоже, не работает на Centos 6.3 - возможно, потому, что она построена для более современной системы или чего-то такого. Я действительно не пытался опровергнуть это.
источник
Это руководство может быть полезным.
Это помогло мне начать работу. Я также добавил некоторые комментарии по поводу тюнинга.
источник
Если вы хотите воспользоваться быстрым хостом для компиляции вещей для вашего RPI, я предлагаю работать в кросс-среде через chroot и QEMU. Это, кстати, заменяет кросс-компилятор без хлопот.
Просто настройте кросс-среду Debian, используя deboostrap / multistrap
(см. главу QEMU / подход debootstrap) и все готово.
источник
В случае, если вы собираетесь кросс-компилировать из OS X: вот отличная статья (и единственная, которую я нашел в сети).
Самое замечательное, что автор предоставляет полный скомпилированный набор инструментов , поэтому вам нужно только скачать, распаковать и смонтировать образ dmg. И это все, вы готовы кросс-компиляции.
источник
Если вы установили Ubuntu 64 bit edition и инструменты от Raspberry Pi SVN, и вы получаете сообщение об ошибке:
просто беги:
источник
Carlson-Minot Inc. предоставляет готовый набор инструментов как для голых железных, так и для GNU / Linux ARM целей. Этот набор инструментов основан на наборе инструментов Mentor Graphics Sourcery Lite с исправлениями и изменениями для сборки на OS X.
источник