Wenn ich ld anstelle von gcc verwenden soll?
Ich möchte wissen, wann ich ld Linker anstelle von gcc verwenden sollte. Ich habe gerade eine einfache Hallo-Welt in C ++ geschrieben, natürlich schließe ich die iostream-Bibliothek ein. Wenn ich eine Binärdatei mit gcc machen will, benutze ich einfach:
g++ hello hello.cpp
und ich habe meine Binärdatei.
päter versuche ich, ld Linker zu verwenden. Um die Objektdatei zu erhalten, benutze ich:g++ -c hello.cpp
. Ok, das war einfach, aber der Linkbefehl war schrecklich lang:
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
Ich weiß, dassgcc
verwendet die ld. @ Verwendgcc
ist in allen Fällen besser oder nur in den meisten Fällen? Bitte erzähl mir etwas über Fälle, in denen ld linker Vorteile hat.