PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : externe statische Lib: wo kommt die her?


mekakic
2012-06-12, 16:47:03
Ich habe in einer Komponente momentan das Problem, dass es beim Bauen einen Linkerfehler LNK2005 "doppelt definierte Symbole" gibt. Dort wird angegeben, dass "libA.lib" ein Symbol enthält das bereits in "libB.lib (libB.dll)" definiert ist. Die Komponente nutzt neben vielen anderen Komponenten "libA" und "libB". Mein erster Gedanke war... das bestimmt bei der Erzeugung von "libA" die "libB" als Abhängigkeit angezogen wird, und wenn meine Komponente dann auch "libB" anzieht es wegen doppelten Symbolen knallt.

Das Problem: libA zieht libB überhaupt nicht an. In den Projectfiles (oder über irgendwelche #pragmas) wird keine weitere lib angezogen. Wie kann es da denn zu so einer doppelten Abhängigkeit kommen. Kann man irgendwie rausfinden, wie die Symbole in die Lib kommen?

ENKORE
2012-06-13, 00:13:27
Besorg dir mal [unixiode Umgebung mir ar] und entpacke die Libs mir ar x $name
Dann hast du die normalen COFF Objektdateien und kannst da genauer nachschauen was da los ist...

ScottManDeath
2012-06-13, 01:54:59
Es kann auch sein dass die libs mit unterlichen Runtimes gelinkt wurden, zb release vs. debug oder dll vs static.