Das Beispielprogramm mit der ID3 -Bibliothek versäumte es nicht, ein Beispielprogramm zu verknüpfen

StackOverflow https://stackoverflow.com/questions/4794729

Frage

Ich versuche zu benutzen lib id3 So greifen Sie mit dem ultimativen Ziel, aus MP3 -Musikdateien auf Album -Kunst zuzugreifen, auf MP3 -Tags zuzugreifen.

Das Problem ist, dass ich die Beispielprogramme, die mit der ID3 -Bibliothek geliefert werden, nicht erstellt habe. Problem 1. Der Versuch, ein Beispielprogramm in meinem Projekt zu kompilieren, generiert zuerst diesen Fehler

1>*** NOTICE *** (not a real error)
1>* You should include a define in your project which reflect how you link the library
1>* If you use id3lib.lib or libprj/id3lib.dsp (you link static) you should add
1>* ID3LIB_LINKOPTION=1 to your preprocessor definitions of your project.
1>* If you use id3lib.dll (you link dynamic) you should add ID3LIB_LINKOPTION=3
1>* to your preprocessor definitions of your project.

Wenn ich versuche, hinzuzufügen

#define ID3LIB_LINKOPTION 1

Zu meiner Quelldatei bekomme ich viele weitere Fehler.

1>Linking...
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in id3lib.lib(tag_parse.obj)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z) already defined in id3lib.lib(tag_file.obj)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z) already defined in id3lib.lib(tag_parse.obj)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ) already defined in id3lib.lib(tag_parse.obj)

Aus diesen Fehlern gehe ich davon aus, dass die Ursache der Probleme in den zusätzlichen Abhängigkeiten ID3lib.lib ist. Aber selbst wenn ich es aus den Abhängigkeiten entferne, bekomme ich diese Fehler trotzdem

1>Linking...
1>main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall ID3_Tag::~ID3_Tag(void)" (??1ID3_Tag@@UAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: class ID3_Field & __thiscall ID3_Frame::Field(enum ID3_FieldID)const " (?Field@ID3_Frame@@QBEAAVID3_Field@@W4ID3_FieldID@@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall ID3_Frame::Contains(enum ID3_FieldID)const " (?Contains@ID3_Frame@@QBE_NW4ID3_FieldID@@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: class ID3_Frame * __thiscall ID3_Tag::Find(enum ID3_FrameID)const " (?Find@ID3_Tag@@QBEPAVID3_Frame@@W4ID3_FrameID@@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall ID3_Tag::ID3_Tag(char const *)" (??0ID3_Tag@@QAE@PBD@Z) referenced in function _main
1>C:\Users\GuestUser\Documents\Visual Studio 2008\Projects\idlib example\Debug\idlib example.exe : fatal error LNK1120: 5 unresolved externals

Bitte hilf mir. Ich fühle mich wie ein C ++ - Neuling :(

War es hilfreich?

Lösung

Link nicht in msvcprtd.lib, eine Standardbibliothek, die bereits in der ID3LIB.LIB enthalten ist.

Sie möchten auf jeden Fall in id3lib.lib verlinken

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top