2008-10-13 69 views
6

我试图链接一个Qt应用程序与它的库和链接器(MinGW)喷出如下几百行,并且我不确定如何继续。Qt应用程序失败壮观

 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 

回答

1

这已经有一段时间,因为我没有任何Qt开发,但只有我记得喷涌而出,这样的消息的庞大的数字了几个实例。

  • 包括Qt的文件是一个 不同版本比共享 库...这发生在我 升级,出于某种原因,你 必须手动升级包括 文件。
  • Qt库完全缺失......我依稀记得编译器正在工作,但是当我第一次启动时,链接器失败。

我在做一个针对ARM处理器的Qt开发,所以在交叉编译时我还有其他的怪事。

6

我不知道...但对我来说,关于Unwind的呕吐事件表明,您的库是否编译有异常,并且您的应用程序是否编译了异常,这两者之间存在不匹配。

如果你想例外,请确保您通过添加下面一行在你的qmake文件中启用它们:

CONFIG += exceptions 

,或者,如果你不想例外,使用相反

CONFIG -= exceptions 

无论你做什么,都不要使用C++编译器选项来自己设置它。据我所知,

0

2个可能的原因:

  1. ,如果你试图用的gcc3链接链接GCC4库。
  2. 您需要-lstdc++标志到编译命令的末尾