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

  • 本文关键字:版本 LD gcc qt5 ld taglib dwarf
  • 更新时间 :
  • 英文 :


经过数小时的研究(和尝试)如何在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。

相关内容

  • 没有找到相关文章

最新更新