#c #linux #gcc #raspberry-pi #arm
#c #linux #gcc #raspberry-pi #arm
Вопрос:
Ищу кросс-компилятор, который мог бы помочь мне создать приложение для Raspberry Pi на моем компьютере Ubuntu 20.04. Я нашел официальные инструменты на Github, и я полагаю, что в этой папке arm-bcm2708
содержатся кросс-компиляторы:
arm-bcm2708hardfp-linux-gnueabi
arm-bcm2708-linux-gnueabi
arm-linux-gnueabihf -> arm-rpi-4.9.3-linux-gnueabihf
arm-rpi-4.9.3-linux-gnueabihf
gcc-linaro-arm-linux-gnueabihf-raspbian
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
Я не понимаю, какие имена каталогов пытаются мне сказать? Я знаю следующие слова:
arm - processor type used on Pi
bcm2708 - processor model used on pi
gnueabi - cross-compiler for armel architecture (you can build binary for ARM on PC)
linaro - company that creates multimedia for ARM
4.9.3 - I suppose is GCC compiler version (why it is so old?)
Какой из компиляторов я должен использовать для своих Pi3 и Pi4?
Комментарии:
1. Почему бы не опираться на RPi? Слишком медленно?
Ответ №1:
Вы можете использовать один из наборов инструментов, предоставляемых ARM для вашего RPI3 / 4. Если вы используете 32-разрядный Linux на вашем RPI3 / 4, используйте одну из arm-none-linux-gnueabihf
цепочек инструментов, если вы используете 64-разрядный Linux на вашем RPI3 / 4, используйте один из aarch64-none-linux-gnu
них.
Обе версии 10.2 и 9.2 двух наборов инструментов отлично работают в моей собственной системе Ubuntu 20.04.1 LTS x86_64. Конечно, вы можете скомпилировать программы с arm-none-linux-gnueabihf
помощью toolchain и запустить их на 64-разрядной Linux, работающей также на вашем RPI3 / 4.
Комментарии:
1. Я полагаю, что если я запущу 64-разрядный Linux, я все равно смогу использовать 32-разрядный набор инструментов arm-none-linux-gnueabihf?
2. Я расширил свой ответ, чтобы (надеюсь) устранить двусмысленности.
3. Не могли бы вы подробнее рассказать о том, как настроить извлеченные инструменты в вашей системе, чтобы их можно было использовать. Я хочу сделать это с помощью Eclipse, поэтому интересно, как настроить пути или установить в основную файловую систему.