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后,正常编译。

相关推荐
小灰灰搞电子14 小时前
Qt 实现魔法导航菜单源码分享
开发语言·qt
sanzk15 小时前
esp32s3 +arduino ide
ide
Quz15 小时前
QML SpinBox 基础与步长控制:可编辑输入与自定义步长
qt
隐积17 小时前
Qt魔法之旅 · 全系列课程导航
qt
脚踏实地皮皮晨19 小时前
003006001_WrapPanel控件
开发语言·c#·.net·wpf·visual studio
霍霍的袁20 小时前
【C++】模板从入门到进阶(函数模板 + 类模板 + 特化 + 分离编译)
开发语言·c++·visual studio
海清河晏11120 小时前
Qt 实战:信号与槽+事件系统
开发语言·c++·qt
脚踏实地皮皮晨20 小时前
003005002_WPF StackPanel 基类官方类定义逐行深度解析
开发语言·windows·算法·c#·wpf·visual studio
郝学胜-神的一滴21 小时前
Qt 高级编程 037:QSS按钮样式封神指南
开发语言·c++·qt·软件工程·用户界面
霍霍的袁21 小时前
【C++】string类 从 入门使用 到 底层深浅拷贝模拟实现
开发语言·c++·visual studio