visual studio Qt 开发环境中手动添加 Q_OBJECT 导致编译时出错的问题

问题简述

创建项目的时候,已经添加了类文件,前期认为不需要信号槽,就没有添加宏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后,正常编译。

相关推荐
人才程序员41 分钟前
【C++拓展】vs2022使用SQlite3
c语言·开发语言·数据库·c++·qt·ui·sqlite
dot.Net安全矩阵1 小时前
拒绝 Github 投毒,通过 Sharp4SuoBrowser 分析 Visual Studio 隐藏文件
ide·安全·web安全·github·.net·.netcore·visual studio
江西理工大学小杨2 小时前
VScode连接远程Linux服务器环境配置
ide·vscode·编辑器
追Star仙6 小时前
基于Qt中的QAxObject实现指定表格合并数据进行word表格的合并
开发语言·笔记·qt·word
aloneboyooo7 小时前
Android Studio安装配置
android·ide·android studio
NOAHCHAN19879 小时前
怎么解决Visual Studio中两个cpp文件中相同函数名重定义问题
c++·visual studio
Trouvaille ~12 小时前
PyQt5 超详细入门级教程上篇
开发语言·qt
深蓝海拓13 小时前
Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用
数据库·python·qt·pyqt
蘑菇丁13 小时前
ansible批量生产kerberos票据,并批量分发到所有其他主机脚本
java·ide·eclipse
沈梦研21 小时前
【Vscode】Vscode不能执行vue脚本的原因及解决方法
ide·vue.js·vscode