Компиляция статических библиотек TagLib 1.6.3 для Windows

У меня очень сложная компиляция и использование 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? (при условии, что MinGW)

Я все еще пытаюсь разобраться с этим C ++, но после прочтения бесчисленных веток форума и других вопросов, я все еще не отвечаю. Вот с чем я сейчас работаю в 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 ++, потому что я нахожусь в тупике. Я бы, вероятно, даже заплатил бы вам за то, что вы просто скомпилировали мне несколько библиотек%! $ # & Ing. Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос