在Ubuntu+catkin_make上qt开发时碰到以下错误:
错误提示:
undefined reference to `vtable for MainWindow'
可能原因:
(1)路径位置错误,源文件的目录结构有问题,查看CmakeLists看看目录结构是不是对的 !!!
看其他博客说目录有问题,但我一直感觉自己的目录应该没有问题,还是太相信自己了。
查CmakeLists是否位置正确
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/*.hpp *.h)
(2)查cpp文件中的头文件包含路径是否正确
(3)当然了还有一种可能就是未添加Q_OBJECT
(4)如果头文件已经包含,检查是否有 .c 或者 .cpp 文件
(5)是不是 cpp 调用 c,如果是,需要使用extern "C"告诉编译器这部分代码按C语言(而不是C++)的方式进行编译
#ifdef __cplusplus
extern "C"{
#endif
//add your c code
#ifdef __cplusplus
}
#endif
参考自:
https://www.cnblogs.com/BANLOONG/p/11570829.html