LD需要DWARF版本3或2,但我的版本是4

Dav*_*vid 0 gcc taglib ld dwarf qt5

经过几个小时的研究(并尝试)如何id3lib在Qt(windows)上安装,但没有成功,我决定使用TagLib的库.

我按照本教程为Qt构建兼容版本的taglib,但还有另一个问题(这里有完整的日志):

  ...

  C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.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'

  ...
Run Code Online (Sandbox Code Playgroud)

在CMake中,我做了configure> MinGW Makefiles.

任何人都可以告诉如何解决它?

环境:

  • Windows 7(64位);
  • CMake 2.8.12.1;
  • TagLib 1.9.1;
  • GCC 3.4.5;
  • Qt 5.1.1.

Ale*_*aev 5

问题源于你使用非常过时的GCC这一事实,而你的Qt二进制文件最有可能是用尖端的GCC(或接近它的那个)构建的.例如,正如错误消息所示,DWARF在您当前GCC的情况下已过时,并且与您当前Qt使用的版本不兼容.此外,即使它不会,你仍然会遇到二进制不兼容的其他问题,因为你基本上混合了不同主要版本号的编译器,强烈建议不要这样做.请注意,您的问题根本与CMake无关.您可以在错误消息中自己查看,即错误是由ld(您过时的)GCC工具链中的链接器实用程序报告的.总而言之,您唯一的选择是更新GCC,理想情况下更新为用于构建当前Qt的GCC.