Warum ist das linken manchmal abhängig von der Reihenfolge?(Libs)[GCC/MinGW]
-
Irgendwie widerspricht das meinem Verständnis eines Linkers, wieso ist das linken manchmal abhängig von der Linkreihenfolge? Auch wenn die Libs sich gegenseitig benötigen müsste es doch in jeder Reihenfolge gehen, warum tut es das nicht?
-
Kannst du das mal genauer beschreiben bzw. ein Beispiel posten?
Denn ich hatte das Problem (wenn ichs richtig versteh: Reihenfolge der Libs für Linker ist wichtig) noch nie...mfg branleb
-
info ld schrieb:
The linker will search an archive only once, at the location where
it is specified on the command line. If the archive defines a
symbol which was undefined in some object which appeared before
the archive on the command line, the linker will include the
appropriate file(s) from the archive. However, an undefined
symbol in an object appearing later on the command line will not
cause the linker to search the archive again.Das Problem tritt also auf, wenn eine Bibliothek A ein Symbol benötigt, welches in einer weiteren Bibliothek B auftaucht, die aber NACH Bibliothek A auf der Kommandozeile angegeben wurde.
-
LordJaxom schrieb:
Das Problem tritt also auf, wenn eine Bibliothek A ein Symbol benötigt, welches in einer weiteren Bibliothek B auftaucht, die aber NACH Bibliothek A auf der Kommandozeile angegeben wurde.
und wenn bibliothek B ihrerseits ein objekt benötigt, das in bibliothek A steckt, dann kann der 'ld' beide libs überhaupt nicht zusammenlinken. richtig?
-
~fricky schrieb:
und wenn bibliothek B ihrerseits ein objekt benötigt, das in bibliothek A steckt, dann kann der 'ld' beide libs überhaupt nicht zusammenlinken. richtig?
Nee, dann muss man die Bibliothek eben mehrmals angeben.
EDIT: Oder gruppieren
... -( -la -lb -lc -)