Когда я должен использовать ld вместо gcc?
Я хочу знать, когда я должен использовать ld linker вместо gcc. Я просто написал просто привет мир на C ++, конечно, я включил библиотеку iostream. Если я хочу сделать двоичный файл с помощью gcc, я просто использую:
g++ hello hello.cpp
и у меня есть мой бинарный файл.
Позже я пытаюсь использовать ld linker. Чтобы получить объектный файл, я использую:g++ -c hello.cpp
, Хорошо, это было легко, но команда link была ужасна долго:
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
Я знаю факт чтоgcc
использует ld. С помощьюgcc
лучше во всех случаях или только в большинстве случаев? Расскажите, пожалуйста, о случаях, когда у линкера есть преимущество.