komische fehler nach benutzung eigener *.lib



  • heiho

    folgendes

    ich habe fuer meine klassen eine lib erstellt -
    und in meinem anderen programm dann das include verzeichnis fuer die *.h files und die lib in den settings eingetragen
    dann kompiliert alles fehlerfrei

    aber sobald ich eine klasse aus der lib aufrufe, spukt der linker einige komische errors

    1>msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::~basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)" (??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ) already defined in Browse.obj
    1>msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z) already defined in Browse.obj
    1>msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::resize(unsigned int,wchar_t)" (?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z) already defined in CheckBoxes.obj
    1>msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)" (??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ) already defined in Browse.obj
    1>msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(wchar_t const *)" (??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z) already defined in Browse.obj
    1>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)
    1>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)
    1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
    

    was habe ich falsch gemacht?

    bisher mach ich es so das ich die cpp und h datei der klasse kopiere und meinem projekt hinzufuege
    das wollte ich umgehen indem ich die ganzen cpp dateien in eine lib habe und die header als additional include directory eintrag



  • warshcinelihc hast du die eine app mit Multithreaded dll und die andere mit multithreaded static gelinkt?



  • Sowas hat in einem C++ Forum nichts zu suchen, ist ein Compiler-Ding.
    Trotzdem: Du hast anscheinend zwischen deinem Programm-Projekt und deinem Library-Projekt unterschiedliche Einstellungen. Z.B. das das eine Multithread ist, das andere Multithread-DLL. Solche Sachen wie Class-Forwarding bei std::string sollte man auch lassen. usw. usf.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • aaaaaah - das koennte tatsaechlich sein, da ich bei einem projekt da was aendern musste
    werd das testen sobald ich dazu komm

    ich bedanke mich {=

    //dazuedit

    das war es tatsaechlich, ich hab in meiner app das multithread dll deaktiv, also die dll statisch gelinkt, das hatte ich in der lib nicht, nun funzt alles so wie es sein soll {=


Anmelden zum Antworten