Quando devo usar ld em vez de gcc?
Quero saber quando devo usar o ld linker em vez do gcc. Acabei de escrever um mundo simplesmente olá em c ++, é claro que incluo a biblioteca iostream. Se eu quiser criar um arquivo binário com o gcc, basta usar:
g++ hello hello.cpp
e eu tenho meu arquivo binário.
Mais tarde eu tento usar o ld linker. Para obter o arquivo de objeto que eu uso:g++ -c hello.cpp
. Ok, isso foi fácil, mas o comando link foi horrível por muito tempo:
ld -o hello.out hello.o \
-L /usr/lib/gcc/x86_64-linux-gnu/4.8.4/ \
/usr/lib/gcc/x86_64-linux-gnu/4.8.4/crtbegin.o \
/usr/lib/gcc/x86_64-linux-gnu/4.8.4/crtend.o \
/usr/lib/x86_64-linux-gnu/crti.o \
/usr/lib/x86_64-linux-gnu/crtn.o \
/usr/lib/x86_64-linux-gnu/crt1.o \
-dynamic-linker /lib64/ld-linux-x86-64.so.2 -lstdc++ -lc
Eu sei o fato de quegcc
usa o ld. Usandogcc
é melhor em todos os casos ou apenas na maioria dos casos? Por favor, conte-me algo sobre casos em que o ld linker tem vantagem.