Ich verwende gerne gcc, um kleine C- und C ++ - Programme auf meinem Hauptcomputer zu kompilieren. Ich habe jedoch auch einen Raspberry Pi, und da ich ein 700-MHz-Single-Core-Computer bin, würde ich es vorziehen, nicht jedes Mal meine Entwicklungsarbeit daran ausführen zu müssen, wenn ich eine Binärdatei dafür erstellen möchte. Wie (denn ich weiß, dass es einen Weg gibt) kompiliere ich mein Programm für den Raspberry Pi mit meinem x86-Laptop? Und gibt es eine Möglichkeit, C (++) - Programme auf dem Pi zu kompilieren, aber eine x86-Binärdatei zu erstellen? Wenn es Hilfe gibt, "Der SoC ist ein Broadcom BCM2835. Dieser enthält einen ARM1176JZFS mit Gleitkomma ..." (gemäß den offiziellen Raspberry Pi FAQ ).
gcc
cross-compilation
raspberrypi
Fouric
quelle
quelle
Antworten:
Mit einer Kombination aus Stöbern in den
apt
Repositories und den äußerst hervorragenden Building Embedded Linux-Systemen (2. Ausgabe, 2008, O'Reilly) fand ich Folgendes:Dies ist sowohl der Name des Befehls als auch das Paket, das Sie installieren, um ihn abzurufen. Einmal aufgerufen, fungiert es genau als "Vanille"
gcc
, mit der einzigen Ausnahme, dass es Pakete für die ARM-Architektur (oder zumindest eine Teilmenge einschließlich des BCM2835) erstellt. Beim Erstellen eingebetteter Linux-Systeme (S. 93-94) wird erläutert, dass die Namen, die zum Aufrufen der GNU-Tools in einer kompilierungsübergreifenden Weise verwendet werden, diesem Format folgen:Am
-gcc
Ende des obersten Beispiels befindet sich die Komponente , mit der angegeben wird, welcher Teil vonbinutils
Ihnen verwendet werden soll. Es kann gegen eine andere GNU-Toolchain-Komponente wield
(Linker) oderas
(Assembler) ausgetauscht werden . Fürarm-linux-gnueabi-gcc
,arm
die Architektur ist,linux
ist der Kern,gnueabi
ist das Betriebssystem, undgcc
ist die Komponente. Wo ist der Hersteller? Anscheinend kann der Hersteller als "unbekannt" angegeben werden, da dies selten einen Unterschied macht, oder ganz weggelassen werden (einschließlich des Unterschiedsarm-linux-unknown-gnueabi-gcc
).quelle
Offiziell dokumentierte Methode
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Getestet in Ubuntu 17.10, Tools Repo bei 5caa7046982f0539cf5380f94da04b31129ed521
quelle
Ich bin mir bei 100% nicht sicher, aber mit https://tandrepires.wordpress.com/2012/08/01/raspberry-pi-openelec-pvr-dvb-t/ können Sie Folgendes versuchen: 1) Erforderliche Bibliotheken:
2) Kompilieren Sie das Projekt mit den folgenden Optionen, wobei N die Anzahl der Kerne Ihrer x86-CPU ist:
Ich hoffe, es hilft. `
quelle
make
zum Kompilieren eines Projekts, das für die Verwendung von make eingerichtet wurde ("PROJECT = RPi ARCH = arm PVR = yes make release -j N") Bündel von Shell-Variablen). In Wirklichkeitmake
wird gcc verwendet, aber um die bereitgestellte Codezeile zu verwenden, müsste ich die Quelle von make ermitteln und dann den größten Teil davon durchsuchen, um nach den verschiedenen Teilen des Codes zu suchen, die die erforderlichen Argumente zu gcc hinzufügen würden. Vielen Dank, dass Sie es versucht haben!