Kompilieren von statischen TagLib 1.6.3-Bibliotheken für Windows

Es fällt mir sehr schwer, TagLib 1.6.3 in meinem Qt-Projekt zu kompilieren und zu verwenden. Ich habe alles versucht, was mir einfällt. TagLib behauptet, dass es durch CMake unterstützt wird, aber ich habe kein Glück. Außerdem bin ich verwirrt darüber, welche Arten von Dateien ich überhaupt für meine Qt-Bibliotheken benötige!

Ich habe * .a-Dateien, * .lib und * .dll erstellt. Soweit ich das verstanden habe, glaube ich, dass ich es will, da ich in Windows * .lib arbeite. Egal was ich tue, ich erhalte immer "undefinierte Verweise" auf TagLib-Funktionen, die ich beim Kompilieren meines Qt-Projekts zu verwenden versuche. Ich habe MinGW32, MSYS, Visual Studio 2008 und sogar das Cross-Compilieren für Windows unter Linux ausprobiert. Alles dreht sich nichts.

Was macht für mich noch weniger Sinn, wenn ich die gleiche TagLib-Quelle mit Qt auf einem Mac kompiliere (g ++, glaube ich?), Funktioniert es einwandfrei! Irgendwo in meinen Windows-Kompilierungsprozeduren muss ich falsch liegen. Ich habe wahrscheinlich 30 Stunden lang (ein- und ausgeschaltet) mein Gesicht auf meinen Schreibtisch geschlagen, um das herauszufinden.

Da Qt minGW verwendet, muss ich TagLib mit demselben Compiler kompilieren?

Wenn ich * .libs mit Visual Studio kompiliere, sind sie nicht kompatibel?

Sind * .eine Bibliotheken auch unter Windows verwendbar? (unter der Annahme von minGW)

Ich versuche immer noch, dieses C ++ - Zeug in den Griff zu bekommen, aber nachdem ich unzählige Forenthreads und andere Fragen gelesen habe, komme ich immer noch zu kurz. Hier ist, womit ich gerade in CMake gearbeitet habe ...

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

Dadurch wird eine einzelne * .a-Datei mit einer Größe von ~ 2 MB erstellt. Die Arbeitsbibliothek auf dem Mac hatte ~ 3 MB und die * .lib von Visual Studio ~ 4 MB im Release-Modus. Bitte rette mich jemand vor diesem plattformübergreifenden C ++ - Kommandozeilen-Wahnsinn, denn ich bin am Ende meines Witzes. Ich würde Sie wahrscheinlich sogar dafür bezahlen, mir ein paar%! $ # & Ing-Bibliotheken zu kompilieren. Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage