Ich versuche, das Triplet für mein Gerät herauszufinden , weil ich versuche, es zu kompilieren , aber auf dem Zielgerät ist kein gcc installiert, und ich darf es nicht installieren.
Mit gcc installiert konnte ich einfach schreiben gcc -dumpmachine
Ist es möglich, diese Informationen ohne gcc zu finden?
cross-compilation
Schwarz
quelle
quelle
uname -a
kommst du hierher?Linux MyDeviceName 2.6.35.3-571-gcca29a0-g8b63513-dirty #162 PREEMPT Tue Aug 4 10:57:29 CEST 2015 armv5tejl GNU/Linux
Freescale MX28EVK
?armv5tejl
KernGNU/Linux
als Betriebssystem, und wenn Sie den Anbieter auch wirklich brauchen, versuchen Sielshw -class cpu
, den Teil "sollte als Superuser ausgeführt werden" zu ignorieren.Antworten:
Sie können viele Informationen erhalten, indem Sie
uname
auchfile
die Art der ausführbaren Dateien überprüfen :Wenn Ihr Gerät nicht
file
installiert ist, kopieren Sie eine ausführbare Binärdatei von diesem auf einen anderen Linux-Computer und führen Sie siefile
dort aus.quelle
Sie müssen Dateien im Dateisystem finden, die das Triplett beibehalten, das
configure
an die Erstellungszeit Ihres Zielbenutzerlandes übergeben / von diesem geprüft wurde.In gängigen GNU / Linux-Distributionen ist es am besten, nach gängigen Befehls-Binärdateien wie zu fragen
bash
curl
make
svn
. Im folgenden Beispiel zu Debian / armhf (QEMU-Bild von hier ) habe ich das kanonische Triplettarm-unknown-linux-gnueabihf
von erhaltenbash --version
. Es wäre also grundsätzlich sicher, meine Cross-Toolchain für dieses System durch zu konfigurieren/path/to/configure --target=arm-unknown-linux-gnueabihf
.Es gibt keinen zuverlässigen Weg, nicht-kanonische Tripletts wie
arm-linux-gnueabihf
x86_64-linux-gnu
aus dem Userland zu kennen, und es könnte verteilungsspezifische Konventionen wie Debian Multiarch und Tupel geben . Sie müssen Informationen aus dem Dokument Ihrer Distribution oder anderen Ressourcen online sammeln.quelle
Eine andere Option ist
make -v
. In meinem Laptop:Dann ist dreifach gebaut
x86_64-pc-linux-gnu
.quelle
x86_64-linux-gnu
trotz allem, wasmake
gesagt wird../configure
oder um etwas zu kompilieren. Beim Cross-Compilieren ist nur der Name relevant, den die Cross-Tools annehmen.