2 Stimmen

Visual Studio: Erstellen einer statischen Bibliothek zur Verwendung in einem anderen Projekt (Vermeiden von STL-Verknüpfungsfehlern)

Ich bin neu in Visual Studio und Windows als Entwicklungsplattform, und ich habe Probleme beim Verknüpfen einer statischen Bibliothek aus einem "Projekt" in eine ausführbare Datei in einem anderen. Die Bibliothek baut ohne Fehler, aber Verknüpfung Bails nach der Suche nach mehreren STL-Vorlage Instanziierungen in der Bibliothek definiert.

Für die Zwecke dieser Frage erstellt Projekt A eine statische Bibliothek, die ich dann in Projekt B zu verknüpfen versuche.

Ich hoffe, jemand kann mich darauf hinweisen, was ich hier übersehe.

Die Build-Befehlszeile für Projekt A:

/Od <includes> /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32_WINNT=0x0501" /D "DEBUG" /D "WS4_WIN32" /D "AF" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /Wp64 /ZI /TP /wd4290 /errorReport:prompt

Die Build- und Link-Befehlszeilen für Projekt B:

/Od <includes> /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /ZI /TP /wd4290 /errorReport:prompt  
/OUT:<exe name> /INCREMENTAL /NOLOGO /MANIFEST /MANIFESTFILE:"<exe name>.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:<pdb name> /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib  ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib <Project A Lib file>  

Wenn der Linker läuft, erhalte ich eine Menge Fehler der folgenden Form:

msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "<some STL template instantiation>" (<mangled name>) already defined in <Project A>.lib(<some Project A object>.obj)  

Ich denke, dies sagt mir, dass eine STL-Instanziierung, die in einem Objekt meiner Bibliothek definiert ist, auch in msvcprtd.lib definiert ist. Was mir nicht klar ist, ist, ob ich meine statische Bibliothek nicht richtig bauen, oder wenn meine Linker-Einstellungen falsch sind. Ich wäre dankbar für jeden Hinweis zu diesem Thema.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X