Programm will MSVCR80.dll
-
Ich linke ja libs wie Qt usw, die sehe ich dann ja als externe DLL und deren Abhängigkeiten. Dort hab ich ja auch die import lib und die DLL. Wenn eine dieser DLLs die MSVCR80.dll haben wollte, würde ich dies ja sehen, weil die fehlende DLL in dem Baum von Qt drin wäre usw.
Verbose ist sehr verbose, alle Zeilen mit MSVCR
2>LINK : warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 4>/DEFAULTLIB:MSVCRTD wurde verarbeitet. 4> "MSVCRTD.lib(MSVCR80D.dll)" geladen 4> Durchsuchen von C:\Programme\Microsoft Visual Studio 8\VC\lib\MSVCRT.lib: 4> __imp___stricmp gefunden. 4> In "OLDNAMES.lib(stricmp.obi)" referenziert 4> "MSVCRT.lib(MSVCR80.dll)" geladen 4> __imp___strnicmp gefunden. 4> In "OLDNAMES.lib(strnicmp.obi)" referenziert 4> "MSVCRT.lib(MSVCR80.dll)" geladen 4> __IMPORT_DESCRIPTOR_MSVCR80 gefunden. 4> In "MSVCRT.lib(MSVCR80.dll)" referenziert 4> In "MSVCRT.lib(MSVCR80.dll)" referenziert 4> "MSVCRT.lib(MSVCR80.dll)" geladen 4> MSVCR80_NULL_THUNK_DATA gefunden. 4> In "MSVCRT.lib(MSVCR80.dll)" referenziert 4> "MSVCRT.lib(MSVCR80.dll)" geladen MSVCRTD.lib(MSVCR80D.dll) 4> OLDNAMES.lib(stricmp.obi) 4> OLDNAMES.lib(strnicmp.obi) 4> MSVCRT.lib(MSVCR80.dll) 4> MSVCRT.lib(MSVCR80.dll) 4> MSVCRT.lib(MSVCR80.dll) 4> MSVCRT.lib(MSVCR80.dll)Also warum OLDNAMES.LIB (ka woher die kommt) die nicht D DLL haben will verstehe ich nicht.
Edit: DevIL lib linkt gegen stricmp, welches in oldnames definiert ist.
hab gegen die Release version gelinkt wegen ein paar anderen Problemen.Tja, da kommt mir nun Cmake in die quere, weil es ja unter linux debug oder release baut und unter windows im VC beides drin ist und ich aber ungern immer sowohl debug als auch release angeben will
-
Seikilos schrieb:
Edit: DevIL lib linkt gegen stricmp, welches in oldnames definiert ist.
hab gegen die Release version gelinkt wegen ein paar anderen Problemen.Tja, da kommt mir nun Cmake in die quere, weil es ja unter linux debug oder release baut und unter windows im VC beides drin ist und ich aber ungern immer sowohl debug als auch release angeben will
Was willst Du uns damit sagen?
-
Also ich tippe mal darauf, dass Du eine Library einfügst, die nur die Release Version der CRT will.
Deshalb der Fehler "warning LNK4098: Standardbibliothek "MSVCRT"!
Das dürfte schon nicht sein. Alle Libs müssen die selbe CRT verwenden. In Deinem Fall also Debug!
-
Ja das war das Problem. Ich hätte nur erwartet dass der Dependency Walker das besser separiert.
@Jochen: Das mit Cmake ist ein anderes Problem, man wählt bei Devil ja nur eine Lib und das ist enweder Release oder Debug, man müsste aber eigentlich zwei wählen, weil man ja bei VS beide braucht
-
Dann benenne die Debug-Version nach *d.lib um...
-
Ich gebe doch nur eine Datei an, wie soll ich bei einer Eingabe gleichzeitig die Release als auch die Debug Version angeben?
-
Hast Du kein VS2005? Da gibt es für Debug und Release zwei Einstellungen...
Das mit CMake verstehe ich nicht, was Du mir damit sagen willst...
-
Kennst du dich mit CMake aus? Die Einstellungen der Pfade werden nicht mehr in VS gemacht, sondern nur noch in CMake
-
Die Frage ist was für Libs Du verwendest. Nicht wie Du den Build anschmeißt.
Einer der verwendeten LIBs ist eben ein Release Build.
Schmeiß den Linker mit der /verbose Option an und schau welches Modul welche Libs verlangt.
-
Das haben wir doch schon auf diese Art vor ein paar Stunden gelöst, da oben is sogar der Output und dass ich es auf DevIL eingrenzen konnte.