Saya telah membaca Bagaimana membangun toolchain GCC 4.7 untuk kompilasi silang? dan telah berhasil membangun program pengujian sederhana yang berfungsi pada RPi saya.
Untuk melakukan ini, saya harus menjalankan arm-unknown-linux-gnueabi-gcc hello.c -o hello
desktop x86 saya dan scp
executable ke RPi saya. Ini lambat dan merepotkan. Saya lebih suka mengontrol kompilasi dari RPi saya.
Saya telah membaca tentang distcc
, yang dapat digunakan untuk mendistribusikan kompilasi dari satu komputer ke komputer lain.
Bagaimana saya menginstal ini? Saya memiliki desktop Debian / Ubuntu dan Arch Linux dan kedua OS yang diinstal pada kartu SD.
debian
archlinux
cross-compilation
Alex Chamberlain
sumber
sumber
export DISTCC_VERBOSE=1
Terima kasih untuk ini ! Ini adalah apa yang saya cari untuk debbug toolchain distcc sayaJawaban:
Instruksi ini menganggap Anda memiliki cross-compiler yang berfungsi pada slave. Baca Cara membuat GCC 4.7 toolchain untuk kompilasi silang? jika belum. Juga berguna untuk
make
menginstal pada master.Instalasi
Pertama, kita harus menginstal
distcc
. Kami akan menggunakan paket prebuilt yang disediakan oleh sistem manajemen paket sistem operasi, tetapi Anda bebas untuk menginstal dari sumber jika Anda mau!Debian
Lengkungan
Konfigurasi
Budak - Debian / Ubuntu
Kita perlu menyesuaikan pengaturan di
/etc/default/distcc
. Di editor favorit Anda, buka sebagai root; Saya berlarisudo vim /etc/default/distcc
.Anda perlu berubah
STARTDISTCC
,ALLOWEDNETS
danLISTENER
. Dengan asumsi Anda memiliki master dan slave Anda berada di subnet yang sama dan subnet itu192.168.0.0/24
, mereka harus diatur keSelanjutnya, Anda harus menambahkan path ke kompiler Anda. Saya melakukan ini dengan menambahkan baris berikut
Jalankan daemon - biasanya akan dimulai saat boot - dengan menjalankan
Master - Arch
Buka
~/.distcc/hosts
di editor teks favorit Anda dan tambahkan alamat IP dari Budak.hosts
File saya terdiri dari satu baris, yang bertuliskan192.168.0.22
.Menggunakan
Semua berjalan dengan baik, Anda harus dapat menggunakan distcc dengan cukup sederhana. Misalnya, untuk mengkompilasi
hello.c
kehello.o
, runContoh: Hello World!
Saya membuat contoh sederhana di direktori home saya, yang terdiri dari 2 file.
Menjalankan
make hello
akan dikompilasi secara lokal; Anda harus melakukan ini sebagai tes cepat terlebih dahulu. Ayo, aku akan menunggu.Menjalankan
make hello CC="distcc arm-unknown-linux-gnueabi-gcc"
akan menjalankan kompilasi yang didistribusikan.Debugging
Butuh beberapa saat untuk menjalankannya dengan benar, dan alat debugging terbaik yang saya temukan adalah variabel lingkungan yang sederhana. Jika kamu
yang
distcc
keluaran klien akan banyak informasi yang berguna.Ini adalah posting yang panjang, jadi umpan balik apa pun akan diterima dengan penuh rasa syukur. Saya harap saya ingat semua langkah!
sumber