was sagt mir folgender Linkerfehler und wie wird er beseitigt?



  • Hi,
    wie kann ich diesen Linkerfehler beseitigen? Die MSDN ist mir an dieser Stelle zu allgemein...
    Danke.

    mybib.lib(error.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) bereits in LIBCMTD.lib(new.obj) definiert



  • Hi

    bereinige mal alles und erstell alles neu.

    Wenn das nichts hilft unterbinde in den Projekteinstellungen das Linken der LIBCMTD.lib Bibliothek.

    Grüße Rapha



  • hi Rapha,

    hab ich gemacht, allerdings findet er dann ca 250 nicht aufgelöste Symbole...

    Das Problem ist dass ich eine Lib habe, die ich in einem anderen Projekt verwenden möchte, gibts irgendwo ein Tutorial dazu, irgendwie muss dort was faul sein.

    mfg Kay



  • Hast du vielleicht deine Lib doppelt eingebunden?

    Normalerweise macht man folgendes um eine externe lib zu verwenden
    - Header in das Projekt hinzufügen (damit Klassen, Funktionen, usw für die Autovervollständigung verfügbar werden)
    - Header mit #include in den Code einbinden
    - Lib hinzufügen (Entweder in den Projekteinstellungen oder von Hand ("Projekt"->"Dem Projekt hinzufügen") oder über Abhängigkeiten ("Projekt"->"Abhängigkeiten")

    Grüße Rapha



  • nein, hab ich eigentlich nicht, wie kann ich das aber ausschliessen, die Lib ist nicht von mir persönlich obgleich ich auch den Sourcecode habe. Kann ich aus dem Sorcecode einfach ne neue Lib machen die dann vielleicht funktioniert? Projekt "Standardlibrary" bei MSVC6 ?

    mfg Kay



  • Hi
    Du erstellst eine neue statische Bibliothek (=lib) folgendermaßen:
    "Datei"->"Neu"->"Projekte"->"Win32-Bibliothek (statische)"

    Grüße Rapha



  • sicher dasssde alle deine projekte gegen dieselbe runtimelib-version (also scheinbar multithreaded debug) linkst ?



  • also ich hab jetzt ne neue statische Lib erzeugt, das geht auch soweit. Allerdings kommen die gleichen Linkerfehler (LNK2005)wenn ich vectoren in der Anwendung(nutzt die Dll) verwenden will, wieso???
    mylib.lib(engine.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) bereits in mfc42d.lib(MFC42D.DLL) definiert
    Irgendwie check ich das nicht, muss ich alle "#includes" weglassen im Lib-Projekt oder oder oder?

    mfg Kay



  • wie orp sagte tritt der fehler häufig auf wenn du zwei projekte verlinkst die mit unterschiedlichen arten von libs(multi/singlethreaded) verlinkt sind
    prüf das mal in den projekteinstellungen

    und schau auch mal nach ob noch irgendwelche zusätzlichen libs von dritten eingebunden werden


Anmelden zum Antworten