"Mindestens ein mehrfach definiertes Symbol gefunden" - Was jetzt?



  • Hi,

    ich bin neu hier und hoffe jemand kann mir bei folgendem Problem helfen. Ich weiß da echt nicht mehr weiter.

    Ich verwende ein Bildverarbeitungstool (OpenCV) in VS2008. Ich inkludiere ein paar Headerdateien und das Programm läuft wie erwartet. Dann aber inkludiere ich vector, da ich ein dynamisches Array brauche und kriege folgende Fehlermeldung:

    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "protected: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Myptr(void)const " (?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ) ist bereits in ivt.lib(ImageProcessor.obj) definiert.
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) ist bereits in ivt.lib(ImageProcessor.obj) definiert.
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) ist bereits in ivt.lib(ImageProcessor.obj) definiert.
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) ist bereits in ivt.lib(ImageProcessor.obj) definiert.
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) ist bereits in ivt.lib(ImageProcessor.obj) definiert.
    1>LINK : warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
    1>C:\Users\ico\Documents\Visual Studio 2008\Projects\Barcode\Release\Barcode.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
    

    Der Kopf meiner .cpp Datei sieht so aus:

    #include "Image/ByteImage.h"
    #include "Image/ImageProcessor.h"
    #include <iostream>
    #include <vector>
    using namespace std;
    

    Die Fehlermeldung kommt sobald ich vector<int> test; in der main einfüge. Den kompletten Code einfügen wäre sehr unübersichtlich, aber der wird kompiliert und tut was er soll, wenn ich vector<int> test nicht eingebe.

    Ich weiß einfach nicht wie ich da jetzt weiter machen soll. Umwege über verkettete Listen möchte ich vermeiden, da es ja irgendwie mit vector gehen muss.

    Danke schonmal für eure Hilfe.


  • Mod

    Kann es sein, dass hier eine alte Library verwendet wird, die nicht mit VS-2008 erzeugt wurde?

    Ich tippe mal auf VC6...

    Du kannst solche statischen Libraries nicht mischen.


Anmelden zum Antworten