GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare quali opzioni della riga di comando gcc passa a ld per impostazione predefinita?

Per gli amanti di una linea:

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

Sostituisci -x c con -x c++ per ottenere flag C++.

Può essere usato anche con clang, ma in tal caso dovresti usare grep per /usr/bin/ld


Sì, puoi usare gcc -v hello.o -o hello per ottenere la linea di collegamento. Per il tuo esempio sulla mia macchina Ubuntu, ottengo questa riga di collegamento (modificata per essere multilinea per la leggibilità):

/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

Nota che collect2 è solo un alias per ld .


Linux
  1. Come cancellare la cronologia della riga di comando BASH in Linux

  2. Come spegnere o riavviare Linux utilizzando la riga di comando

  3. Linux:come scoprire la famiglia di architettura Intel dalla riga di comando?

  4. Come ricordare le opzioni di comando??

  5. Come riavviare Linux utilizzando la riga di comando

Come determinare la versione di Ubuntu tramite la GUI e la riga di comando

Come controllare la versione del sistema operativo con la riga di comando di Linux

Come estrarre il file Tar.xz sulla riga di comando di Linux

Come impostare il browser predefinito dalla riga di comando?

Come trovare l'indirizzo IP nella riga di comando di Linux

Come utilizzare il comando which in Linux