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_H
    

    test.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?


Anmelden zum Antworten