Johannes S. schrieb:
> Johann L. schrieb:
>> Du verwendest -Wl, was die nachfolgende(n) Schalter an den Linker
>> weitergibt. Der Compiler-Treiber sieht diese Option also garnicht und
>> wertet sie auch nicht aus.
>
> das ist mir bekannt, nur hier sind auch einige Optionen für den Linker
> beschrieben:
> https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options
>
> dann gibt es einen Unterschied zwischen compiler link step und dem
> tatsächlichen Linker Aufruf? Irgendwie sehr verwirrend...
>
> Nachtrag:
> Ok, die Doku bezieht sich auf den Fall das ich mit g++ gleichzeitig den
> compile+link mache?
Nein, "gleichzeitig" muss es nicht sein. Du kannst auch erst g++ -c
machen und dann g++ *.o ...
g++ und gcc sind lediglich Treiber-Programme, die je nach Optionen und
übergebenen Quellen Sub-Prozesse aufrufen wie z.B. Compiler (cc1plus
oder cc1), Assembler (as) und Linker (collect2 / ld).
"Options for Linking" sind Optionen, die beim Linken verwendet werden,
also wenn g++ / gcc als (Linker-)Treiber verwendet wird und das Linken
nicht per -S, -E oder -c etc. unterbunden wird.
"Options for the Linker" wären Optionen für den Linker, also das, was
nach -Wl, oder -Xlinker folgt.
Einen Link-Aufruf für ld händisch zu basteln ist kompliziert und
fehlerträchtig, daher verwendet man dazu gcc / g++ als Treiber. Wenn du
die Sub-Prozesse nebst Optionen sehen willst, die der Treiber auslöst,
kannst du beim g++ Aufruf -v -Wl,-v angeben.