Release Bibliothek funktioniert nicht in Release-Anwendung



  • Hallo!

    Also ich habe meine Bibliothek (iniLibrary.lib) bereits ausführlich im Debug-Modus getestet. Jetzt wollte ich diese im Release-Modus testen und es kommen folgende Buildfehler:

    Dateiprojekt error LNK2005: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) bereits in main.obj definiert
    Dateiprojekt error LNK2005: "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) bereits in main.obj definiert
    Dateiprojekt fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden
    Dateiprojekt warning LNK4098: Standardbibliothek 'LIBCMT' steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden

    Ich verstehe aber nicht was es mit diesem Fehler auf sich hat, weil ich nicht weiß wieso std::_Mutex::_Lock() bereits in der main.obj defniert ist. Ich verwende die gar nicht, wüßte nicht mal welche Header man für die Klasse benötigt.

    Kennt jemand vielleicht diesen Fehler oder weiß wie man ihn behebt?

    Ich war mir nicht sicher wohin mit der Frage, aber ich würde eher sagen es ist ein Compiler als C++ Problem deswegen habe ich es mal hier gepostet, vielleicht kann mich ja ein Mod nach C++ verschieben wenn mir da besser geholfen werden kann.

    Code-Hacker



  • Hi!

    Habe eben in der MSDN den Fehler gefunden und gleich der 1. Punkt traf zu. Das Release der lib war bei der Laufzeitbibliothek auf Multithreaded eingestellt, statt auf Singlethreaded (beim Debug wars korrekt), warum auch immer. Jetzt funktioniert es.

    Code-Hacker


Anmelden zum Antworten