经过数小时的研究(和尝试)如何在Qt(Windows)上安装id3lib
,但没有成功,我决定使用TagLib的库。
我按照本教程为 Qt 构建了一个兼容的 taglib 版本,但还有另一个问题(完整日志在这里):
...
C:MinGWbin..libgccmingw323.4.5........mingw32binld.exe: Dwarf
Error: found dwarf version '4', this reader only handles version 2 and 3
information.
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../mingw32/lib/crt2.o:crt1.c:(.text+0x1f1):
undefined reference to `__chkstk_ms'
...
在CMake中,我做了configure
> MinGW Makefiles
.
谁能说出如何解决它?
环境:
- 视窗 7(64 位);
- CMake 2.8.12.1;
- 标签库 1.9.1;
- 海湾合作委员会 3.4.5;
- Qt 5.1.1.
问题源于这样一个事实,即您使用的是非常过时的GCC,而您的Qt二进制文件很可能是使用前沿的GCC(或接近GCC)构建的。例如,正如错误消息所示,DWARF在您当前的GCC中已经过时,并且与您当前的Qt使用的GCC不兼容。此外,即使它不会,你仍然会遇到二进制不兼容的其他问题,因为你基本上混合了具有不同主要版本号的编译器,这是强烈建议不要这样做的。请注意,您的问题与CMake完全无关。您可以在错误消息中看到它,即错误是由 ld
报告,链接器实用程序来自(您的过时的)GCC 工具链。总而言之,您唯一的选择是更新GCC,理想情况下完全更新为用于构建当前Qt的GCC。