Ich habe andere Beispiele von Menschen mit diesem Problem gefunden, aber hatten kein Glück mit ihren Lösungen. Ich versuche, std :: cout in einer statischen Bibliothek zu verwenden, die auch Boost-Threads und Bind verwendet. Wenn ich nicht benutze und std::cout
kompiliert und Links gut mit dem Hauptprogramm, aber wenn ich und ich die Bibliothek kompilieren habe ich keine Probleme, aber wenn ich kompilieren und verknüpfen das Hauptprogramm, das die statische Bibliothek verwendet, bekomme ich eine Menge Dinge wie:MSVC 2010 Linker Fehler 2005 mit Std :: Cout in der statischen Bibliothek
2>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj) 2>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj) 2>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj) 2>LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRTD.lib(MSVCR100D.dll) 2>LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRTD.lib(MSVCR100D.dll) 2>LIBCMT.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR100D.dll) 2>LIBCMT.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj)
etc ...
ich in meiner Linker-Einstellungen versucht haben, zu gehen und es verwenden, die in Konflikt stehende Bibliothek in der Fehlerausgabe aufgelistet stoppen, aber ich kann es nicht richtig machen. Wenn ich sage, dass ich aufhören soll, eine Bibliothek zu benutzen, kann es die Probleme beheben, aber ein paar fehlende externe Symbole geben, dann wechsle ich die Bibliothek, mit der es Probleme gab, aber ich bekomme noch ein paar "bereits definiert". Irgendwelche Hinweise darauf, was ich tun kann, um das zu beheben? Sollte ich nur eine andere Klasse namens "log" oder etwas machen und einfach von der Haupt-EXE-Datei darauf zugreifen (was würde die Zeichenketten-Bibliothek verwenden, was wiederum Probleme verursachen könnte, aber ich habe es noch nicht versucht)? Danke für jede Hilfe.
Was versuchst du sowieso? – chrisaycock
Ich möchte nur meinen neuen Thread mit boost erstellt werden, wo es für den Fortschritt beim Erstellen einer GUI ist und es als eine einfache Möglichkeit des Debuggens und Probleme verwenden, wenn ich sie habe. – contrapsych
Können Sie Ihre Frage bearbeiten, um Ihre 'cout'-Anweisung aufzulisten? – chrisaycock