6

我正在尝试将 Qt 应用程序与其库链接,并且链接器 (MinGW) 会发出数百行如下所示的内容,我不确定如何继续。

cpp: 未定义对 `_Unwind_SjLj_Register' 的引用
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win。
 cpp: 未定义对 `_Unwind_SjLj_Unregister' 的引用
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win。
 cpp:未定义的对 `_Unwind_SjLj_Resume' 的引用
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win。
 cpp: 未定义对 `_Unwind_SjLj_Register' 的引用
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win。
 cpp: 未定义对 `_Unwind_SjLj_Unregister' 的引用
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win。
 cpp:未定义的对 `_Unwind_SjLj_Resume' 的引用
4

3 回答 3

6

我不知道...但对我来说,关于 Unwind 的大量信息表明您在库是否使用异常编译和您的应用程序是否使用异常编译之间存在不匹配。

如果您需要例外,请确保您已通过在 qmake 文件中添加以下行来启用它们:

CONFIG += exceptions

或者,如果您不想要异常,请使用相反的

CONFIG -= exceptions

无论您做什么,都不要使用 C++ 编译器选项自行设置。

于 2008-10-13T23:04:40.793 回答
1

自从我进行任何 Qt 开发以来已经有一段时间了,但我记得只有几个实例会喷出大量这样的消息。

  • Qt 的包含文件与共享库的版本不同……这发生在我升级时,由于某种原因,您必须手动升级包含文件。
  • Qt 库完全丢失了……我隐约记得编译器工作正常,但链接器在我第一次启动时失败了。

我正在针对 ARM 处理器进行 Qt 开发,因此在交叉编译时我遇到了额外的奇怪问题。

于 2008-10-13T22:51:15.890 回答
0

我知道的 2 个可能的原因:

  1. 如果您尝试使用 gcc3 链接器链接 gcc4 库。
  2. 您需要-lstdc++标志到编译命令的末尾
于 2012-08-16T01:38:18.267 回答