共计417个字符,预计需要花费2分钟才能阅读完成。
问题
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 文件!
上图我采用了 file
方法来获得目录下所有文件。假设我这里添加了 test.cpp 和 test.h 新的类,并且没有使用遍历目录的方法,那么我这里改成:
add_executable(3DSystemHelper test.cpp test.h)
就能通过编译了!一定要包含 test.h 文件!
正文完