ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
3615
3615
EMPFEHLEN
-
Hi Leute,
ich probiere im Moment meine Runtime Library zu /MT (statisch) umzustellen um die kompabilität mit einem meiner Programme sicher zu stellen. Meine bisherigen versuche ergaben immer das selbe Problem welche unten aufgelistet sind.
Habt ihr irgentwelche Ideen die mir hierbei weiterhelfen könnten? Hab schon gegoogelt
und dabei bin ich auf Antworten wie: "Die Header Dateien dürfen hierbei nich gemixt als Release und Debug Version eingefügt werden. Das lässt sich in den Projekteinstellungen ganz einfach umstellen.", aber damit komme ich nicht klar. Ich hoffe auf ein wenig Hilfe eurerseits,
danke im vorraus. Jede Antwort ist erwünscht
Code :1 2 3 4 5
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj) MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj) MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj) LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library C:\Dokumente und Einstellungen\RamBO\Desktop\Kopie von RisinG_DestructioN_Scan_ES\Release\RisinG_DestructioN.dll : fatal error LNK1169: one or more multiply defined symbols found
-
Entschuldigung für meine 2. Post. Hat niemand eine Idee?
Ich komm einfach nicht weiter an dieser Stelle. Ich habe mal LIBCMT.lib ignoriert, aber dann bekomme ich Runtime Error beim benutzen. (Compelieren und Buld t)
-
22.07.08 08:01 #3
Moin,
also ich hatte hier vor geraumer Zeit hier mit meinen Anwendungen ähnliche Probleme!
Der Linkerfehler LNK4098 besagt. dass die Standardbibliothek "xxx" in Konflikt mit anderen Libs steht und man gerade versucht hat, mit nicht kompatiblen Libs zu binden!
Die nicht kompatiblen Bibliotheken müssen dann mit "/NODEFAULT:Lib" ignoriert werden.
Ich kopiere Dir hier mal die Übersicht aus meiner Hilfe (VC++ 6.0) rein, die mich damals bei meinen Problemen auf die richtige Spur gebracht hat
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
Standardbibliothek "Bibliothek" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden Sie versuchen, mit nicht kompatiblen Bibliotheken zu binden. Wichtig Die Laufzeitbibliotheken enthalten jetzt Direktiven, um das Vermischen von verschiedenen Typen zu verhindern. Sie werden diese Warnung bei dem Versuch erhalten, verschiedene Typen oder Debug- und Nicht-Debug-Versionen der Laufzeitbibliothek im gleichen Programm zu verwenden. Wenn Sie z. B. eine Datei zur Verwendung einer Art Laufzeitbibliothek und eine andere Datei zur Verwendung einer anderen Art Bibliothek (z. B. single-threaded im Vergleich zu multithreaded) kompiliert haben und Sie anschließend versuchen, diese zu binden, werden Sie diese Warnung erhalten. Sie sollten alle Quelldateien kompilieren, um die gleiche Laufzeitbibliothek zu verwenden. Weitere Informationen finden Sie unter den Compiler-Optionen Verwenden der Laufzeitbibliothek (MD, /ML, /MT, /LD). Sie können den Schalter /VERBOSE:LIB des Linkers dazu verwenden, die vom Linker gesuchten Bibliotheken zu bestimmen. Wenn Sie einen LNK4098 erhalten, und Sie eine ausführbare Datei erstellen möchten, die z. B. die single-threaded Nicht-Debug- Laufzeitbibliotheken einsetzt, verwenden Sie die Option /VERBOSE:LIB, um zu ermitteln, nach welchen Bibliotheken der Linker sucht. Der Linker sollte LIBC.LIB und nicht LIBCMT.LIB, MSVCRT.LIB, LIBCD.LIB, LIBCMTD.LIB oder MSVCRTD.LIB als zu suchende Bibliotheken ausgeben. Sie können den Linker anweisen, die inkorrekten Laufzeitbibliotheken zu ignorieren, indem Sie die inkorrekten Bibliotheken in das Textfeld Bibliotheken ignorieren in der Registerkarte Linker des Dialogfelds Einstellungen im Developer Studio eingeben, oder durch Verwendung der Option /NODEFAULTLIB:Bibliothek mit LINK für jede Bibliothek, die Sie ignorieren möchten. Weitere Informationen finden Sie unter der Linker-Option Ignorieren von Bibliotheken (/NODEFAULTLIB). Die unten aufgeführte Tabelle zeigt, welche Bibliotheken abhängig von der von Ihnen verwendeten Laufzeitbibliothek ignoriert werden sollten. Beim Verwenden dieser Laufzeitbibliothek Ignorieren Sie diese Bibliotheken Single-threaded (libc.lib) libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib Multithreaded bei Verwendung von DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib Single-Threaded Debug (libcd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib Multithreaded Debug (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib Multithreaded Debug bei Verwendung von DLL (msvcrtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib Wenn Sie z. B. diese Warnung erhalten und Sie eine ausführbare Datei erstellen möchten, welche die Single-threaded-Version (Nicht-Debug) der Laufzeitbibliotheken verwendet, könnten Sie die folgenden Optionen für den Linker verwenden: /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
Ich hoffe, dass Dir das auch weiterhilft!!
tschüss
Klaus
ERGÄNZUNG:
diese Libs habe ich über die Projekteinstellungen ignoriert:
Libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.libGeändert von vfl_freak (22.07.08 um 08:12 Uhr) Grund: Zeilemumbrüche eingefügt
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Danke Klaus, endlich funktioniert es! Der aufgespürte Text ist super
-
23.07.08 07:50 #5
Guten morgen,
super
Noch ein kleiner Tipp hierzu:
Der Text kommt aus der Hilfe des Visual Studios! Du erreichst ihn ganz einfach wie jedes andere Schlüsselwort auch;
also: in der Konsole innerhalb der Meldung einfach den entsprechenden Teil markieren (hier also "LNK4098") und dann <F1> drücken!
tschüss
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
Ähnliche Themen
-
Linker
Von nosrep123 im Forum VisualStudio & MFCAntworten: 6Letzter Beitrag: 30.06.10, 09:31 -
Code::Blocks Probleme mit Linker ?
Von MettMax im Forum C/C++Antworten: 1Letzter Beitrag: 19.08.08, 21:59 -
[Dev-C++] Linker Error, was ist zu tun?
Von meilon im Forum C/C++Antworten: 2Letzter Beitrag: 09.08.06, 11:10 -
problem mit Linker
Von gamerfunkie im Forum C/C++Antworten: 2Letzter Beitrag: 14.04.06, 21:44 -
Was will der Linker von mir
Von masda im Forum C/C++Antworten: 6Letzter Beitrag: 19.10.04, 19:05





Zitieren
Login






