J'ai beaucoup de mal à compiler et à utiliser TagLib 1.6.3 dans mon projet Qt. J'ai essayé tout ce à quoi je peux penser. TagLib prétend qu'il est pris en charge par CMake mais je n'ai pas de chance. De plus, je ne sais même pas de quels types de fichiers j'ai besoin pour mes librairies Qt !
J'ai construit des fichiers *.a, *.lib, et *.dll. De ce que je comprends jusqu'à présent... Je pense que puisque je travaille sous Windows, *.lib est ce que je veux. Peu importe ce que je fais, je me retrouve toujours avec des "références non définies" à toutes les fonctions TagLib que j'essaie d'utiliser lorsque j'essaie de compiler mon projet Qt. J'ai essayé MinGW32, MSYS, Visual Studio 2008, et même la compilation croisée pour Windows sur Linux. Tous ces essais n'ont rien donné.
Ce qui est encore moins logique pour moi, c'est que si je compile la même source TagLib avec Qt sur Mac (g++ je crois ?), cela fonctionne bien ! Quelque part dans mes procédures de compilation Windows, je dois me tromper. Je me suis tapé le visage sur mon bureau pendant environ 30 heures (de temps en temps) pour essayer de résoudre ce problème.
Puisque Qt utilise minGW, dois-je compiler TagLib avec le même compilateur ?
Si je compile les *.lib avec Visual Studio, ne sont-ils pas compatibles ?
Les bibliothèques *.a sont-elles utilisables sous Windows (en supposant que minGW) ?
J'essaie toujours de comprendre ce qu'est le C++, mais après avoir lu d'innombrables fils de discussion et d'autres questions, je n'y arrive toujours pas. Voici ce avec quoi j'ai travaillé dans CMake actuellement...
cmake -G "MinGW Makefiles" -DENABLE_STATIC=ON -DHAVE_ZLIB=0 -DWITH_MP4=1 -DMAKE_TAGLIB_LIB=1
cmake --build ./
Cela génère un seul fichier *.a d'une taille de ~2MB. La bibliothèque de travail sur Mac faisait ~3MB, et le *.lib de Visual Studio faisait ~4MB en mode Release. S'il vous plaît, que quelqu'un me sauve de cette folie de ligne de commande C++ multiplateforme, car je suis à bout de nerfs. Je vous paierais même probablement pour me compiler quelques %!$#&ing bibliothèques. Merci.