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.