我在我的 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 ./
这会生成一个大小约为 2MB 的 *.a 文件。Mac 上的工作库约为 3MB,Visual Studio 中的 *.lib 在发布模式下约为 4MB。请有人将我从这种 C++ 跨平台命令行的疯狂中拯救出来,因为我无计可施。我什至可能会付钱让你编译一些 %!$#&ing 库。谢谢。