Мне очень трудно компилировать и использовать TagLib 1.6.3 в моем проекте Qt. Я пробовал все, что мог придумать. TagLib утверждает, что поддерживается через CMake, но мне не повезло. Кроме того, я не понимаю, какие файлы мне вообще нужны для моих библиотек Qt!
Я создал файлы *.a, *.lib и *.dll. Из того, что я понимаю до сих пор... Я считаю, что, поскольку я работаю в Windows, *.lib - это то, что я хочу. Независимо от того, что я делаю, я всегда получаю «неопределенные ссылки» на любые функции TagLib, которые я пытаюсь использовать, когда пытаюсь скомпилировать свой проект Qt. Я пробовал MinGW32, MSYS, Visual Studio 2008 и даже кросс-компиляцию для Windows на Linux. Все ничего не получается.
Что для меня имеет еще меньше смысла, так это то, что если я скомпилирую тот же исходный код TagLib с Qt на Mac (думаю, на g++?), он будет работать нормально! Где-то в моих процедурах компиляции Windows я должен ошибаться. Я бился лицом о стол, наверное, около 30 часов (время от времени), пытаясь понять это.
Поскольку Qt использует minGW, должен ли я компилировать TagLib с тем же компилятором?
Если я скомпилирую *.lib с Visual Studio, они не совместимы?
Можно ли вообще использовать библиотеки *.a в Windows? (при условии минГВт)
Я все еще пытаюсь разобраться с этим материалом на С++, но после прочтения бесчисленных веток форума и других вопросов я все еще не могу. Вот с чем я сейчас работаю в CMake...
cmake -G "MinGW Makefiles" -DENABLE_STATIC=ON -DHAVE_ZLIB=0 -DWITH_MP4=1 -DMAKE_TAGLIB_LIB=1
cmake --build ./
Это создает один файл *.a размером ~ 2 МБ. Рабочая библиотека на Mac весила ~3 МБ, а *.lib из Visual Studio — ~4 МБ в режиме выпуска. Пожалуйста, кто-нибудь, спасите меня от этого безумия кросс-платформенной командной строки C++, потому что я в отчаянии. Я бы, наверное, даже заплатил вам за то, что вы просто скомпилируете мне несколько %!$#& библиотек. Спасибо.