Как заставить работать id3lib в C ++ Builder 10.2? - PullRequest
0 голосов
/ 23 мая 2018

Как установить эту библиотеку в C ++ Builder 10.2 в Windows 7?Я скопировал файл id3lib.dll из "id3lib-3.8.3 win binaries / debug" и поместил в папку с файлом .exe моего проекта, затем создал файл id3lib.lib с помощью ImpLib (с использованием параметра -a) и добавил в свой проект.После этого я связал папку заголовка (id3) с моим проектом и написал #include "id3/tag.h".Когда я пытаюсь скомпилировать, я получаю:

[bcc32 Fatal Error] globals.h (56): F1003 Директива об ошибке: прочитайте сообщение выше или win32.readme.first.txt

Что я делаю не так, чтобы установить эту библиотеку?

1 Ответ

0 голосов
/ 25 мая 2018

В строке 56 указана #error директива globals.h:

#ifdef WIN32
#  define LINKOPTION_STATIC         1 //both for use and creation of static lib
#  define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp
#  define LINKOPTION_USE_DYNAMIC    3 //if your project links id3lib dynamic
#  ifndef ID3LIB_LINKOPTION
#    pragma message("*** NOTICE *** (not a real error)")
#    pragma message("* You should include a define in your project which reflect how you link the library")
#    pragma message("* If you use id3lib.lib or libprj/id3lib.dsp (you link static) you should add")
#    pragma message("* ID3LIB_LINKOPTION=1 to your preprocessor definitions of your project.")
#    pragma message("* If you use id3lib.dll (you link dynamic) you should add ID3LIB_LINKOPTION=3")
#    pragma message("* to your preprocessor definitions of your project.")
#    pragma message("***")
#    error read message above or win32.readme.first.txt // <-- HERE

Компилятор достигает #error, если WIN32 определено, но ID3LIB_LINKOPTION НЕ определено.

Как вы можете видеть в «сообщении выше», вам нужно вручную определить ID3LIB_LINKOPTION в вашем проекте в соответствии с тем, как вы подключаетесь к библиотеке ID3.Вы еще этого не сделали, поэтому вы получаете сообщение об ошибке.

Зайдите в параметры проекта и добавьте запись для ID3LIB_LINKOPTION=3 (поскольку вы используете версию DLL библиотеки ID3) вРаздел Условий.Или поместите оператор #define ID3LIB_LINKOPTION 3 в коде C ++ над любыми операторами #include для заголовочных файлов ID3.

Также убедитесь, что вы добавили сгенерированный файл id3lib.lib в свой проект с помощью диспетчера проектов, илипоместите директиву #pragma comment(lib, "id3lib.lib") где-нибудь в вашем коде C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...