我有一个集成了一些GTK功能的库,我决定切换到Qt。 所以我创建了一个测试cmake文件来尝试集成Qt5,但它不起作用,因为当我使用可执行文件动态加载libary时,我得到“未定义的符号”。
undefined symbol: _ZN8UIWindow16staticMetaObjectE
我搜索了很多内容,似乎没有那么简单的任何帮助,或者评论会非常感激。
Here是我使用的相关文件。
答案 0 :(得分:2)
好的,我找到了解决方案。由于我对标题和源文件使用不同的文件夹,因此我必须手动指定包含qt代码的文件的位置。
QT5_WRAP_CPP( MOCS_HDRS ${INCLUDE_DIR}/UIWindow.h )
答案 1 :(得分:1)
该错误表示未生成或构建UIWindow类的MOC文件。 Qt期望由MOC(MetaObject Compiler,IIRC)生成的类的某些元信息 你的CMake脚本打开了automoc,这通常有效,所以我建议你看一下CMake的输出,看看它是否正在为你的课程运行该步骤。