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

Мне очень сложно скомпилировать и использовать TagLib 1.6.3 в моем проекте Qt. Я перепробовал все, что мог придумать. TagLib утверждает, что он поддерживается через CMake, но я м не повезло. Более того, я не понимаю, какие файлы мне вообще нужны для моих Qt libs!

Я создал файлы * .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. Спасибо.

6
задан jocull 7 October 2010 в 05:15
поделиться