Ich habe gelesen, wie man eine GCC 4.7-Toolchain für das Cross-Compilieren erstellt. und haben erfolgreich ein einfaches Testprogramm erstellt, das auf meinem RPi funktioniert.
Dazu musste ich arm-unknown-linux-gnueabi-gcc hello.c -o hello
auf meinem x86-Desktop und scp
der ausführbaren Datei auf meinem RPi laufen. Das ist langsam und mühsam. Ich würde die Kompilierung lieber von meinem RPi aus steuern.
Ich habe darüber gelesen distcc
, wie die Kompilierung von einem Computer auf einen anderen verteilt werden kann.
Wie installiere ich das? Ich habe sowohl Debian / Ubuntu- als auch Arch Linux-Desktops und beide Betriebssysteme auf SD-Karten installiert.
debian
archlinux
cross-compilation
Alex Chamberlain
quelle
quelle
export DISTCC_VERBOSE=1
Danke dafür ! Es ist das, wonach ich suche, um meine distcc-Toolchain zu debuggenAntworten:
Diese Anweisungen setzen voraus, dass Sie einen funktionierenden Cross-Compiler auf dem Slave haben. Lesen Sie Wie erstelle ich eine GCC 4.7-Toolchain für das Cross-Compilieren? wenn nicht. Es ist auch nützlich,
make
auf dem Master installiert zu haben .Installation
Zuerst müssen wir installieren
distcc
. Wir werden die vorgefertigten Pakete verwenden, die von den Paketverwaltungssystemen der Betriebssysteme geliefert werden. Sie können sie jedoch auch von der Quelle installieren, wenn Sie möchten!Debian
Bogen
Aufbau
Sklave - Debian / Ubuntu
Wir müssen die Einstellungen in anpassen
/etc/default/distcc
. Öffnen Sie es in Ihrem Lieblingseditor als root. Ich ranntesudo vim /etc/default/distcc
.Sie müssen sich ändern
STARTDISTCC
,ALLOWEDNETS
undLISTENER
. Angenommen, Ihr Master und Ihr Slave befinden sich im selben Subnetz und dieses Subnetz befindet192.168.0.0/24
sich aufAußerdem sollten Sie den Pfad zu Ihrem Compiler hinzufügen. Ich habe dazu die folgende Zeile hinzugefügt
Führen Sie den Daemon aus - er wird normalerweise beim Booten gestartet -, indem Sie ihn ausführen
Meister - Bogen
Öffnen Sie
~/.distcc/hosts
in Ihrem bevorzugten Texteditor und fügen Sie die IP-Adresse der Slaves hinzu. Meinehosts
Datei bestand aus einer einzelnen Zeile, die lautete192.168.0.22
.Verwenden
Alles läuft gut, Sie sollten distcc ganz einfach verwenden können. Zum Beispiel kompilieren
hello.c
zuhello.o
, runBeispiel: Hallo Welt!
Ich habe ein einfaches Beispiel in meinem Home-Verzeichnis eingerichtet, das aus 2 Dateien bestand.
Das Ausführen
make hello
wird lokal kompiliert. Sie sollten dies zuerst als Schnelltest tun. Weiter, ich werde warten.Beim Ausführen
make hello CC="distcc arm-unknown-linux-gnueabi-gcc"
wird eine verteilte Kompilierung ausgeführt.Debuggen
Es hat eine Weile gedauert, bis dies richtig funktioniert hat, und das beste Debugging- Tool, das ich gefunden habe, war eine einfache Umgebungsvariable. Wenn du
Der
distcc
Client gibt viele nützliche Informationen aus.Dies ist ein langer Beitrag, daher wäre jedes Feedback dankbar. Ich hoffe ich habe mich an alle Schritte erinnert!
quelle