ARM için derleme nasıl yapılır?


41

ARM işlemcileri için çapraz derleme için GCC'yi nasıl ayarlarım? Ev sahibi x86_64 (AMD64 - Ubuntu 12.04) üzerinde olacaktı ve hedef ARM olacaktı (Ahududu Pi ve Pandaboard - her biri için ayrı derlemeler yapacak)?

Yanıtlar:


44

Yükleme gcc-arm-linux-gnueabive binutils-arm-linux-gnueabipaketler ve ardından sadece kullanmak arm-linux-gnueabi-gccyerine gccderleme için.

Hedef sisteminizde hangi linux ve binutil lezzetlerinin olduğuna dikkat edin. En yeni şeyler sert yüzeydir, bu durumda yapardınız:

sudo apt-get install gcc-arm-linux-gnueabihf

Bu, binutils dahil tüm çapraz derleme ortamını getirir.


Ubuntu 13.10'da 'gnueabi' için gcc-4.7 ve 'gnueabihf' için gcc-4.8 elde edin.
nobar

derlemeye çalıştığımda, openssl/ossl_typ.hzaten yüklü olsa da hata bulamadım libssl-dev.
Necktwi

1
Eğer kaynak kodunu alırsanız, normalde sadece derleyebildikten apt-get sourcesonra make dosyasını değiştirmeden ARM için kolayca bir .deb oluşturmanın bir yolu var mı? apt-get build-depdpkg-buildpackage -b -uc -us -r
Jonathan,

@Maratyszcza, hattın yürütülmesine ilişkin daha spesifik olabilir misiniz and then just use arm-linux-gnueabi-gcc instead of gcc for compilation? makeDerlerken, AFAIK'ın buna doğal olarak işaret ettiği /usr/lib/gccya da yakınına bir çağrı yapıyorum . Arm-linux-gnueabi-gcc'yi nasıl doğrudan arayabilirim?
Momergil

9
@MomergilCC=arm-linux-gnueabihf-gcc make ...
Maratyszcza

1

Disk görüntü sağlayıcısı da uyumlu bir çapraz derleyici sağlamalıdır.

Bu tek güvenilir yöntemdir.

Özellikle RPI için sağlanan çapraz derleyiciler şu adresten temin edilebilir: https://github.com/raspberrypi/tools ve https://raspberrypi.stackexchange.com/questions/64273/installing-raspberry- pi-çapraz derleyici / 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

Kendi çapraz derleyicinizi yanlış seçerseniz, aşağıdakiler olabilir:

En sevdiğim alternatif Buildroot ile kendi resminizi oluşturmak: https://stackoverflow.com/questions/47557262/how-to-download-the-torvalds-linux-kernel-master-recompile-it-and-boot-it- wi / 49349237 # 49349237 Bu, kaynaktan her şeyi inşa eder ve her şeyin uyumlu olmasını sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.