Link Probleme (LNK2005 und LNK2001)
-
Hallo,
ich portiere gerade eine (selbst erstellte) Bibliothek von Linux nach Windows (Win XP, MSVC 2008 SP1). Die eigentliche Arbeit ist abgeschlossen, nun arbeite ich an einem Testprogramm.
Leider schaffe ich es nicht die Bibliothek vernünfig einzubinden.
Hier noch kurz ein paar Hintergrundinfos.Die selbst erstellte Bibliothek nutzt das Szenegraphframework OpenSG (http://opensg.vrsource.org/). Ich habe das Framework selbst unter Windows compiliert (Debug und Release Versionen erstellt). Meine Bibliothek nutzt nun Teile von OpenSG. Mein Testprogramm nutzt nun natürlich auch OpenSG. An dieser Stelle scheitert leider der Linker. Für verschiedene Methoden meldet er folgendes.
Fehler 1 error LNK2005: "public: __thiscall osg::FieldContainerPtrBase::~FieldContainerPtrBase(void)" (??1FieldContainerPtrBase@osg@@QAE@XZ) ist bereits in demonstrator4.obj definiert. OSGSystemD.libAußerdem kommt im Anschluss der Fehler LNK2001:
Fehler 8 error LNK2001: Nicht aufgelöstes externes Symbol ""class osg::NullFieldContainerPtr const osg::NullFC" (?NullFC@osg@@3VNullFieldContainerPtr@1@B)". demonstrator4.objOpenSG allein im Programm funktioniert. Meine Bibliothek alleine funktionert auch. Nur wenn ich beide kombiniere will er nicht.
Ich habe schon eine Weile hier im Forum gesucht, aber leider keine Lösung gefunden. Meine Bibliothek und mein Testprogramm habe ich mit /MD bzw. /MDd erstellt.
Weiß jemand wie man die Sachen richtig zusammenfügt?
Grüße, sjoe.
-
Kleine Ergänzung, die Bibliothek habe ich als Statische Bibliothek (.lib) erstellt.