GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déterminer quelles options de ligne de commande gcc passe à ld par défaut ?

Pour les amoureux de la ligne :

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

Remplacer -x c avec -x c++ pour obtenir des drapeaux c++.

Peut également être utilisé avec clang, mais dans ce cas, vous devez grep pour /usr/bin/ld


Oui, vous pouvez utiliser gcc -v hello.o -o hello pour obtenir la ligne de liaison. Pour votre exemple sur ma machine ubuntu, j'obtiens cette ligne de lien (modifiée pour être multiligne pour la lisibilité):

/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

Notez que collect2 est juste un alias pour ld .


Linux
  1. Comment effacer l'historique de la ligne de commande BASH sous Linux

  2. Comment arrêter ou redémarrer Linux à l'aide de la ligne de commande

  3. Linux - Comment découvrir la famille d'architecture Intel à partir de la ligne de commande ?

  4. Comment se souvenir des options de commande ? ?

  5. Comment redémarrer Linux en utilisant la ligne de commande

Comment déterminer la version d'Ubuntu via l'interface graphique et la ligne de commande

Comment vérifier la version du système d'exploitation avec la ligne de commande Linux

Comment extraire le fichier Tar.xz sur la ligne de commande Linux

Comment définir le navigateur par défaut à partir de la ligne de commande ?

Comment trouver une adresse IP dans la ligne de commande Linux

Comment utiliser la commande which sous Linux