Saya suka menggunakan gcc untuk mengkompilasi program C dan C ++ kecil kecil di komputer utama saya. Namun, saya juga memiliki Raspberry Pi, dan, sebagai komputer inti-tunggal 700-MHz, saya lebih suka tidak perlu melakukan pengembangan pekerjaan di atasnya setiap kali saya ingin membuat biner untuk itu. Bagaimana (karena saya tahu ada cara) bagaimana saya mengkompilasi silang program saya untuk Raspberry Pi menggunakan laptop x86 saya? Dan apakah ada cara agar saya dapat mengkompilasi program C (++) pada Pi tetapi menghasilkan x86 biner? Jika ada bantuan, "SoC adalah Broadcom BCM2835. Ini berisi ARM1176JZFS, dengan floating point ..." (sesuai dengan FAQ Raspberry Pi resmi ).
gcc
cross-compilation
raspberrypi
empatik
sumber
sumber
Jawaban:
Menggunakan kombinasi mencari-cari di
apt
repositori dan Building Embedded Linux Systems yang sangat bagus (edisi ke-2, 2008, O'Reilly), saya menemukan ini:Itu adalah nama perintah dan paket yang Anda instal untuk mendapatkannya. Setelah dipanggil, ia bertindak persis seperti "vanilla"
gcc
, dengan satu-satunya pengecualian bahwa ia membangun paket untuk arsitektur ARM (atau subset termasuk BCM2835, setidaknya). Membangun Sistem Linux Tertanam (hal 93-94) menjelaskan bahwa nama-nama yang digunakan untuk memanggil alat GNU dengan cara kompilasi silang mengikuti format ini:Di
-gcc
akhir contoh paling atas adalah komponen , yang digunakan untuk menentukan bagian mana yangbinutils
ingin Anda gunakan. Ini dapat ditukar dengan komponen GNU toolchain lain, sepertild
(tautan) atauas
(assembler). Sebabarm-linux-gnueabi-gcc
,arm
adalah arsitektur,linux
adalah kernel,gnueabi
os, dangcc
komponen. Dimana pabrikannya? Rupanya, pabrikan dapat ditentukan sebagai "tidak dikenal", karena jarang membuat perbedaan, atau ditinggalkan sama sekali (termasuk itu akan membuatarm-linux-unknown-gnueabi-gcc
).sumber
Metode yang didokumentasikan secara resmi
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Diuji di Ubuntu 17.10, tool repo di 5caa7046982f0539cf5380f94da04b31129ed521
sumber
Saya tidak yakin 100%, tetapi, menggunakan https://tandrepires.wordpress.com/2012/08/01/raspberry-pi-openelec-pvr-dvb-t/ , Anda dapat mencoba: 1) Perpustakaan yang diperlukan:
2) Kompilasi proyek dengan opsi-opsi berikut, di mana N adalah jumlah inti dari CPU x86 Anda:
Saya harap ini membantu. `
sumber
make
untuk mengkompilasi sebuah proyek yang telah diatur untuk menggunakan make ("PROYEK = RPi ARCH = lengan PVR = ya, buat rilis -j N", hal-hal sebelumnya hanyalah sebuah sekelompok variabel shell). Sekarang, pada kenyataannyamake
menggunakan gcc, tetapi untuk menggunakan baris kode asalkan saya harus mendapatkan sumber make dan kemudian melihat sebagian besar mencari bagian-bagian kode yang berbeda yang akan menambah argumen yang diperlukan untuk gcc. Terima kasih sudah mencoba!