码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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后,正常编译。

  • 相关阅读:
    未来 20 年 12 大发展趋势
    1754. 构造字典序最大的合并字符串-交叠比较-力扣双百代码
    Vue3 —— 怎样利用vite创建一个vue3项目
    python 学习随笔 4
    【深入理解Kotlin协程】协程中的Channel和Flow & 协程中的线程安全问题
    2022/8/11
    servlet,service方法,post方法,get方法
    两周半内做了一个必应壁纸Api的开源项目及中间的过程和感悟
    Acwing-42. 栈的压入、弹出序列
    Springboot+Vue实现物业管理系统
  • 原文地址:https://blog.csdn.net/qq996980215/article/details/133963518
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号