Compilando bibliotecas estáticas TagLib 1.6.3 para Windows

Estou tendo muita dificuldade em compilar e usar o TagLib 1.6.3 no meu projeto Qt. Eu tentei de tudo que consigo pensar. O TagLib afirma que é suportado pelo CMake, mas não estou tendo sorte. Além disso, estou confuso sobre que tipos de arquivos eu ainda preciso para minhas bibliotecas Qt!

Criei arquivos * .a, * .lib e * .dll. Pelo que entendi até agora ... acredito que desde que eu estou trabalhando no Windows * .lib é o que eu quero. Não importa o que eu faça, sempre acabo com "referências indefinidas" para qualquer função TagLib que tento usar quando tento compilar meu projeto Qt. Eu tentei o MinGW32, MSYS, Visual Studio 2008 e até a compilação cruzada para Windows no Linux. Tudo aparecendo nada.

O que faz ainda menos sentido para mim é que, se eu compilar a mesma fonte TagLib com o Qt no Mac (g ++, acho?), Funcionará bem! Em algum lugar dos meus procedimentos de compilação do Windows, tenho que estar errado. Eu tenho batido meu rosto na minha mesa por provavelmente cerca de 30 (ligado e desligado) horas tentando descobrir isso.

Como o Qt usa minGW, devo compilar o TagLib com o mesmo compilador?

Se eu compilar * .lib's com o Visual Studio, eles não são compatíveis?

As bibliotecas * .a são até utilizáveis no Windows? (assumindo minGW)

Eu ainda estou tentando entender esse material em C ++, mas depois de ler incontáveis tópicos do fórum e outras perguntas, ainda estou ficando curto. Aqui está o que eu tenho trabalhado no CMake atualmente ...

cmake -G "MinGW Makefiles" -DENABLE_STATIC=ON -DHAVE_ZLIB=0 -DWITH_MP4=1 -DMAKE_TAGLIB_LIB=1
cmake --build ./

Isso gera um único arquivo * .a de tamanho de ~ 2 MB. A biblioteca de trabalho no Mac tinha ~ 3MB e o * .lib do Visual Studio era ~ 4MB no modo Release. Por favor, alguém me salve dessa loucura de linha de comando de plataforma cruzada C ++ porque estou no fim da minha inteligência. Eu provavelmente pagaria para você apenas me compilar algumas bibliotecas%! $ # & Ing. Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion