下午好,
我正在尝试开发我的第一个Qt应用程序。如果我尝试使用自己的代码链接静态库,我会收到如下错误:
H:/NetBeansProjects/CommonLib/aes.cpp:607: undefined reference to `__gxx_personality_sj0'
H:/NetBeansProjects/CommonLib/aes.cpp:607: undefined reference to `_Unwind_SjLj_Register'
H:/NetBeansProjects/CommonLib/aes.cpp:615: undefined reference to `_Unwind_SjLj_Resume'
我的代码在不与Qt一起使用时编译和工作。 在我尝试链接我的库之前编译和工作的Qt程序。 谷歌表明它可能是用于构建两组代码的编译器之间的不匹配。我将Netbeans环境设置为使用相同的工具链来构建两者 变化
我正在使用Windows,NetBeans 6.9.1和最新的Qt。我已经设置了编译器使用 Qt提供了mingw编译器。
有什么建议吗?
答案 0 :(得分:0)
找到了解决方案!
它是在以前版本的项目库中链接的。
我用Qt安装了一个新版本的Mingw编译器来解决问题。我将新编译器设置为Netbeans中具有不同名称的工具链。
我做了一个干净的工作,并使用新工具链构建了引用的项目。 Netbeans将编译库存储在从工具链中命名的目录中。它将旧版本的库保留在另一个以原始工具链命名的目录中。
将项目引用添加到库时,Netbeans会导入库的路径。如果更改工具链(并因此更改库的路径),其他项目仍指向旧代码。您必须删除项目引用并重新添加它们。