包含头文件路径引发的编译错误 Note: No relevant classes found. No output generated.
1:使用VS2015编译QT项目的时候报错
头文件sensorcalibrationdia.h头部内容
报错如下
mainwindow.h(0): Note: No relevant classes found. No output generated.
1>mainwindow.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall MainWindow::metaObject(void)const " (?metaObject@MainWindow@@UBEPBUQMetaObject@@XZ)
2:百度关键词后,按照编码问题处理无法解决
按照百度的答案,解决不了问题
网上搜了搜都解决不了,后来发现警告中mainwindow.h(0):后面用括号括起来的0,难道是文件第一个字节问题?于是发现了问题:
该文件是我从Qt Create工程中转换到VS2010的,后来中文就无法在QtCreate中正常显示了,于是把.h和.cpp转换成unicode格式,都能正常显示。
unicode格式文件第一二个字符是0xfeff,难道是该问题弄的?于是把文件全部转换回ascii格式。编译通过。问题解决。
3:按照2中的思路,将代码中包含的头文件直接替换成头文件里面的具体内容后编译通过
将头文件中包含的内容直接复制到#include "module_def.h"处编译通过。说明头文件的展开有问题。
4:将头文件里面的包含文件修改成相对路径
module_def.h头文件在sensorcalibrationdia.h头文件相同目录的另外一个子目录下。将#include "module_def.h"修该成 #include "include/module_def.h"就好了。