Problem mit .libs und GlowCode
-
Hallo,
ich schreibe gerade ein Programm, dass von einer .lib Datei abhängig ist und bekomme dauernd compiler Fehler. Die lib Datei sieht folgendermassen aus.
test.h:#if !defined ASD_H #define ASD_H class TestC { public: TestC(); ~TestC(); void DoSth(); }; #endif // !defined ASD_Htest.cpp
#include "test.h" TestC::TestC(){} TestC::~TestC(){} void TestC::DoSth() { new TestC; // <-- Fehler }Bei meinem Win32 Programm, dass diese .lib benutzt muss ich wegen eines kleinen tools ("GlowCode") in den Project Settings unter C++ in der Kategorie "Code Generation" als runtime Library "Debug Multithreaded DLL" einstellen. Dadurch kommen, wenn ich
TestC D;schreibe folgende Compiler Fehler. Diese Fehler kommen allerdings nicht, wenn ich die Zeile, die ich mit "Fehler" kommentiert habe, lösche (Nehme ich stattdessen "Debug Snglethreaded" funktioniert auch alles):
Deleting intermediate files and output files for project 'test - Win32 Debug'.
--------------------Configuration: test - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
test.cpp
Linking...
libcd.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCRTD.dll)
libcd.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCRTD.dll)
libcd.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj)
libcd.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj)
libcd.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj)
libcd.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in MSVCRTD.lib(cinitexe.obj)
libcd.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCRTD.dll)
LINK : warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library
MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib "libcd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/test.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.test.exe - 9 error(s), 2 warning(s)
Ich könnte natürlich einfach die MSVCRTD.lib deaktivieren, aber dann scheint GlowCode seine Arbeit bei der memory leak detection zu verweigern. In der Hilfe zu GlowCode habe ich keine Informationen zu diesem Problem gefunden. Kann mir vielleicht jemand weiterhelfen?