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

Gcc LD需要矮人版本3或2,但我的是版本4,gcc,qt5,ld,taglib,dwarf,Gcc,Qt5,Ld,Taglib,Dwarf,关于如何在Qt(windows)上安装id3lib,我研究了几个小时(并尝试了几个小时),但没有成功,我决定使用 我随后为Qt构建了一个兼容的taglib版本,但还有一个问题(): 在CMake中,我做了配置MinGW makefile 有人能告诉我怎么修吗 环境: Windows7(64位) CMake 2.8.12.1 TagLib 1.9.1 通用条款3.4.5 Qt 5.1.1 问题源于这样一个事实:您使用的是非常过时的GCC,而您的Qt二进制文件很可能是使用最先进的GCC(或与之相近

关于如何在Qt(windows)上安装
id3lib
,我研究了几个小时(并尝试了几个小时),但没有成功,我决定使用

我随后为Qt构建了一个兼容的taglib版本,但还有一个问题():

在CMake中,我做了
配置
MinGW makefile

有人能告诉我怎么修吗

环境:

  • Windows7(64位)
  • CMake 2.8.12.1
  • TagLib 1.9.1
  • 通用条款3.4.5
  • Qt 5.1.1

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

问题源于您使用的是非常过时的GCC,而您的Qt二进制文件很可能是使用最先进的GCC(或与之相近的GCC)构建的。例如,如错误消息所示,在您当前的GCC中,DWARF已经过时,并且与您当前的Qt使用的版本不兼容。此外,即使不会,您仍然会遇到二进制不兼容的其他问题,因为您基本上混合了具有不同主要版本号的编译器,这是非常不鼓励的。请注意,您的问题与CMake完全无关。您可以在错误消息中看到它,即,
ld
报告了错误,这是(您过时的)GCC工具链中的链接器实用程序。总之,您唯一的选择是更新GCC,理想情况下是完全更新到用于构建当前Qt的GCC。

好的,我正在更新GCC。我将尝试重建。好的,我正在更新gcc。我将尝试重建。感谢您的澄清,您认为我可以将旧gcc版本的passs.c与新版本一起使用吗?(从gcc 4.9的源代码处编译,即,然后使用修改后的passs.c来控制阶段?)感谢澄清,您认为我可以将旧gcc版本的passs.c与新版本一起使用吗?(从源代码处编译gcc 4.9,即,然后使用修改后的passs.c来控制阶段?)
  ...

  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'

  ...