为Windows编译静态TagLib 1.6.3库

joc*_*ull 6 c++ windows qt cmake taglib

我在Qt项目中编译和使用TagLib 1.6.3非常困难.我已经尝试了所有我能想到的东西.TagLib声称它是通过CMake支持的,但我没有运气.此外,我对我的Qt库甚至需要什么类型的文件感到困惑!

我已经构建了*.a文件,*.lib和*.dll.从我到目前为止的理解...我相信,因为我在Windows*.lib工作是我想要的.无论我做什么,我总是在我尝试编译我的Qt项目时尝试使用的任何TagLib函数的"未定义引用".我已经尝试过MinGW32,MSYS,Visual Studio 2008,甚至可以在Linux上对Windows进行交叉编译.一切都没事.

对我来说更不合理的是,如果我用Mac上的Qt编译相同的TagLib源代码(我认为是g ++?)它运行正常!在我的Windows编译过程中,我必须出错.我一直在我的桌子上砸我的脸大约30(开和关)小时试图解决这个问题.

由于Qt使用minGW,我必须使用相同的编译器编译TagLib吗?

如果我用Visual Studio编译*.lib是不兼容的?

*.a库甚至可以在Windows中使用吗?(假设minGW)

我仍然试图掌握这些C++的东西,但在阅读了无数的论坛帖子和其他问题之后,我仍然很短暂.以下是我目前在CMake工作的内容......

cmake -G "MinGW Makefiles" -DENABLE_STATIC=ON -DHAVE_ZLIB=0 -DWITH_MP4=1 -DMAKE_TAGLIB_LIB=1
cmake --build ./
Run Code Online (Sandbox Code Playgroud)

这会生成一个大小约为2MB的*.a文件.Mac上的工作库大约为3MB,而Visual Studio中的*.lib在发布模式下大约为4MB.请有人救我脱离这个C++跨平台命令行疯狂,因为我在我的智慧结束.我甚至可能会付钱给你一些%!$#&ing库.谢谢.

Wol*_*ngP 3

由于 Mac 适合您,所以我只讨论 Win32。

好的,这是我的 Taglib.pro 和我的 project.pro 的摘录:https://gist.github.com/449ea81ce92f52399f41。去看一下。我的 Taglib 可能有点过时,所以请小心,您可能会丢失一些文件。还要注意相对路径。它们都与 .pro 文件相关。

我刚刚跑进cmake .taglib 目录。这应该会产生 aconfig.h和 ataglib_config.h

libTaglib.a您绝对只在使用 QtCreator 和 mingw-gcc 时才需要。*.lib 是 MSVC 特定的!