Как настроить GCC для кросс-компиляции для процессора ARM? Хост будет установлен на платформе x86_64 (AMD64 - Ubuntu 12.04), а целью будет ARM (Raspberry Pi, а также Pandaboard - будут делать отдельные компиляции для каждого)?
Установите пакеты gcc-arm-linux-gnueabi
и binutils-arm-linux-gnueabi
, а затем просто используйте arm-linux-gnueabi-gcc
вместо gcc
для компиляции.
Вы должны быть осторожны с тем, какой вкус Linux и binutils есть в вашей целевой системе. Новейшая вещь - hardfloat, в этом случае вы должны сделать:
sudo apt-get install gcc-arm-linux-gnueabihf
Это создаст полную кросс-компиляцию, включая binutils.
Поставщик образа диска также должен предоставлять совместимый кросс-компилятор
Это единственный надежный метод.
В частности, для RPI предоставленные кросс-компиляторы доступны по адресу: https://github.com/raspberrypi/tools и могут использоваться, как объяснено по адресу: https: // raspberrypi. stackexchange.com/questions/64273/install-raspberry-pi-cross-compiler/83215#83215
git clone https://github.com/raspberrypi/tools
export PATH="$(pwd)/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:${PATH}"
printf '#include <stdio.h>\nint main() { puts("hello world"); }\n' > hello_world.c
printf '#include <iostream>\nint main() { std::cout << "hello world" << std::endl; }\n' > hello_world.cpp
arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
arm-linux-gnueabihf-g++ -std=c++11 -o hello_world_cpp hello_world.cpp
Если вы неправильно выбрали собственный кросс-компилятор, может произойти следующее:
Моя любимая альтернатива - создать свой собственный образ с помощью Buildroot: https://stackoverflow.com/questions/ 47557262 / как загрузить файл torvalds-linux-kernel-master-пересобрать его и загрузить его wi / 49349237 # 49349237 Th является сборкой всего из исходного кода и гарантирует, что все совместимо.