QT编译时出现 undefined reference to `vtable for HVSView’

81次阅读
没有评论

共计417个字符,预计需要花费2分钟才能阅读完成。

问题

QT 编译时出现 undefined reference to `vtable for HVSView'

undefined reference to `vtable for < 你的类名 >`

原因

你创建了新的文件里继承了 QObject 类似的 QT 类,但是 QT 没有为你创建 moc 文件。导致链接器参数中未包含或者创建 moc 文件。

解决方法

Qt Creator

在菜单里找到以下:

Build → Run qmake
Build → Rebuild All

然后项目重构好以后就行了。

或者:

项目右键 ->Add Existing Files

手动添加项目文件。

CLion 或 CMake 项目

找到并修改 CMakeLists.txt,确保 add_executable 方法内项目名后面跟上所有的 .h.cpp.ui 文件!

QT 编译时出现 undefined reference to `vtable for HVSView'

上图我采用了 file 方法来获得目录下所有文件。假设我这里添加了 test.cpptest.h 新的类,并且没有使用遍历目录的方法,那么我这里改成:

add_executable(3DSystemHelper test.cpp test.h)

就能通过编译了!一定要包含 test.h 文件!

正文完
 0
评论(没有评论)
验证码
zh_CN简体中文
文章目录