Ich möchte wissen, warum, wenn ich gcc -v
unter Arch Linux laufe , das unknown
Wort in diesen Ausgaben angezeigt wird:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
während in einer anderen Distribution, wie Ubuntu, der Name der Distribution angezeigt wird ubuntu
:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-ubuntu-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-ubuntu-linux-gnu
linux
arch-linux
gcc
noslin005
quelle
quelle
gcc
wurden mit dencore
Paketen installiert, als ich Arch installierte.Antworten:
Wie bereits im Kommentar erwähnt, wird das Ziel-Triplet standardmäßig vom Skript config.guess generiert . Die Logik ist ziemlich einfach. Zuerst werden
uname
einige grundlegende Systeminformationen abgerufen:Diese Zeichenfolgen werden kombiniert und mit fest codierten Mustern abgeglichen. Das Ergebnis ist auch fest codiert:
Für einige Systeme ist es möglich, aussagekräftigere Ergebnisse zu liefern, wie z. B. IBM in "rs6000-ibm-aix".
Distributionsbetreuer überschreiben diese Zeichenfolge einfach mit ihrer eigenen (auch fest codierten):
GCC 6 wird wahrscheinlich standardmäßig x86_64-pc-linux- gnu ausgeben : Die Datei config.guess wurde im Upstream-Repository aktualisiert .
quelle
unknown
standardmäßig fest codiert.Das ist der Hersteller-Teil des Konfigurations- / Ziel-Triplets. Das Autobook sagt dazu:
Das Autoconf-Handbuch nennt es
company
.Ich bin kein Experte für die Kompilierung mit GCC, aber es scheint, dass die Informationen in diesem Feld eher informativen Charakter haben und
unknown
nur der Standardwert sind, den GCC verwendet, sofern sie nicht ausdrücklich überschrieben werden. GCC unter Ubuntu 12.04 verwendet beispielsweisex86_64-linux-gnu
Debian 7s GCCi486-linux-gnu
, so dass es durchaus möglich ist, das Feld leer zu lassen.quelle
x86_64-linux-gnu
Vielfalt sind Abkürzungsziele, die fürx86_64-unknown-linux-gnu
oder stehenx86_64-pc-linux-gnu
.gcc -v
zeigt das Ziel an, für das es kompiliert wurde, undconfig.sub
gibt das kanonische Triplet an (suchen Sie es in/usr/share/misc
von Debian abgeleiteten Systemen mitautotools-dev
installiertem).