网络广告推广网站,广州h5设计网站公司,免费crm客户管理软件,网站开发的布局划分问题简述 创建项目的时候#xff0c;已经添加了类文件#xff0c;前期认为不需要信号槽#xff0c;就没有添加宏Q_OBJECT,后面项目需要#xff0c;又加入了宏Q_OBJECT#xff0c;但是发现只是添加了一个宏Q_OBJECT#xff0c;除此之外没有改动其它的代码#xff0c;原本…问题简述 创建项目的时候已经添加了类文件前期认为不需要信号槽就没有添加宏Q_OBJECT,后面项目需要又加入了宏Q_OBJECT但是发现只是添加了一个宏Q_OBJECT除此之外没有改动其它的代码原本编译通过的程序编译不过会提示一些错误。
在网上查了很多方法都不行如
1.remove 头文件重新加进来即可。好简单的问题好记性不如烂笔头记录下吧。
2.重新命名头文件如在头文件名称后增加“_”等待 moc_xx 文件生成后在去掉下划线.(modify 20200906)
重命名重新添加 能解决不少 moc 问题。包括信号槽重新命名时出现的 moc 不存在等。以上方法还无法解决时找到 vcpro删除对应错误的 moc 引用重新试试。
更新2020.12.01
3. 如果 moc 程序一直没作用关掉 vs重新打开工程。
4.终极方法打开终端调用 moc.exe 生成对应 moc_xxx.cpp 即可。
正确的解决方案看下面
最终通过新建一个简单窗体移除带有O_OBJECT的头文件.h和cpp,再添加回来并和原解决方案做对比发现项目解决方案里导入文件的方式不一样QtMoc和ClInclude
将项目.vcxproj文件里导入文件的方式由ClInclude修改为QtMoc后正常编译。