GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann festgestellt werden, welche Befehlszeilenoptionen gcc standardmäßig an ld übergibt?

Für Oneline-Liebhaber:

echo "int main(void) {}" | gcc -o /dev/null -v -x c - &> /dev/stdout| grep collect | tr -s " " "\012"

Ersetzen Sie -x c mit -x c++ um C++-Flags zu bekommen.

Kann auch mit clang verwendet werden, aber in diesem Fall sollten Sie nach /usr/bin/ld suchen


Ja, Sie können gcc -v hello.o -o hello verwenden um die Verbindungslinie zu erhalten. Für Ihr Beispiel auf meinem Ubuntu-Rechner erhalte ich diese Link-Zeile (aus Gründen der Lesbarkeit mehrzeilig bearbeitet):

/usr/lib/gcc/x86_64-linux-gnu/4.4.5/collect2
--build-id
--eh-frame-hdr
-m elf_x86_64
--hash-style=gnu
-dynamic-linker
/lib64/ld-linux-x86-64.so.2
-o hello
-z relro
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtbegin.o
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib
-L/lib/../lib
-L/usr/lib/../lib
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../.. -L/usr/lib/x86_64-linux-gnu
hello.o
-lgcc
--as-needed -lgcc_s --no-as-needed 
-lc
-lgcc
--as-needed -lgcc_s --no-as-needed
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtend.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crtn.o

Beachten Sie, dass collect2 ist nur ein Alias ​​für ld .


Linux
  1. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  2. Linux – Wie finde ich die Intel-Architekturfamilie über die Befehlszeile heraus?

  3. So starten Sie Linux über die Befehlszeile neu

  4. 15 am häufigsten verwendete GCC-Compiler-Befehlszeilenoptionen

  5. Wie erstelle ich eine Datei, die wie ein Befehlszeilenargument benannt ist?

So ermitteln Sie die Ubuntu-Version über die GUI und die Befehlszeile

So überprüfen Sie die Betriebssystemversion mit der Linux-Befehlszeile

So extrahieren Sie die Tar.xz-Datei in der Linux-Befehlszeile

Wie stelle ich den Standardbrowser über die Befehlszeile ein?

So finden Sie die IP-Adresse in der Linux-Befehlszeile

So verwenden Sie den which-Befehl in Linux