网站制作哪家大,设计本源,WordPress配置头像路径,做商城网站的公司推荐PCH或stdafx预编译头导致的找不到声明的问题
明明类和函数都已经声明了#xff0c;声明定义都存在#xff0c;检查过好几遍#xff0c;但是编译器还是报错
错误 C2065 “init”: 未声明的标识符刚开始想从文件编码的角度入手#xff0c;查看是不是编码出现了问题#xf…PCH或stdafx预编译头导致的找不到声明的问题
明明类和函数都已经声明了声明定义都存在检查过好几遍但是编译器还是报错
错误 C2065 “init”: 未声明的标识符刚开始想从文件编码的角度入手查看是不是编码出现了问题因为编码问题也会导致类似的情况出现。
但是文件编码也都是一样的并不是编码出现异常。
找了很久后来无意间改动了头文件include代码区导致代码include顺序发生了变化竟然意外编译通过了
#include OiPCH.hpp
#include QApplication
#include QTextCodec
#include QDesktopWidget
#include QInputDialog
#include QCryptographicHash
#include QMessageBox#include Base/OiDefines.hpp
#include Base/OiGlobals.hpp
#include Core/OiCore.hpp
#include Core/OiSettings.hpp#include OiCircleMarkWindow.hpp
#include OiCircleMarkDatabase.hpp
#include OiSmart.Flow/Appl.hpp唯一的区别就是把pch头文件调整到了第一行然后就编译通过了。
查询资料发现OiPCH是项目里定义的预编译头文件一般来说预编译头文件都有类似pch、stdafx之类的名字也可以自定义自行配置
对于预编译头文件必须放在代码第一行这是使用预编译头文件的硬性要求是规定编译器规定好的没那么多为什么。
需要深入了解的话就要参考微软文档