Ich bin gettings diese Art von Fehlern in einem MFC VS6 Projekt zu vermeiden, während die Anwendung verbinden:wie „bereits definierten Fehler“ in C++
msvcrt.lib(MSVCRT.dll) : error LNK2005: _atoi already defined in LIBC.lib(atox.obj)
Ich weiß, was es bedeutet (eine Funktion in zwei verschiedenen Bibliotheken vorhanden); um es zu lösen, müsste ich eine der 2 Bibliotheken ausschließen (msvcrt.lib
oder libc.lib
).
Aber wenn ich dies tue, gibt es alle Arten von ungelösten externen Fehlern. Also würde ich gerne beide Bibliotheken verwenden.
Gibt es eine Möglichkeit, den Linker zu sagen, dass ich die _atoi
Funktion in libc.lib
und nicht in msvcrt.lib
(oder umgekehrt) verwendet werden soll?
Jede Hilfe oder Richtung wäre toll.
Gerade hatte ein ähnliches Problem, wie ich mit dem nicht verwalteten Welt nicht viel vertraut bin es ein bisschen eine Überraschung für mich war, dass man verschiedene Versionen einer 3rd-Party-Bibliothek benötigt je nachdem, welche Laufzeit der Code-Bibliotheken und die Bibliothek benutzen. Ich habe einen 3rd-Party-lib und versuchte es mit einem Projekt in VC zu verknüpfen ++ 2005 die Bibliothek stellte mir heraus, verwendet und ältere Version des (a?) Laufzeitbibliothek - LIBCP.lib. Glücklicherweise war die Quelle der 3rd-Party-Bibliothek verfügbar, so dass ich sie mit der VC2005-Laufzeitbibliothek ergänzen konnte. Ich frage mich, wie ich das ohne die Quelle lösen würde. – axk