文章目录

  • 背景
  • 原因
  • 解决方法一:
  • 解决方法二:

背景

  1. Qt Creator转Visual Studio工程。
  2. 当添加一个新的类时, 且继承自QObject时, 回出现编译报错:
无法解析的外部符号:qt_metacall metaObject(void) const qt_metacast

原因

这是因为在此程序中使用了Q_OBJECT宏,这个宏是Qt对C++的扩展。需要要先使用Qt提供的moc程序生成moc文件,然后再用C++编译器编译此文件,才能正常链接

解决方法一:

在Visual Studio中对头文件使用自定义的生成命令

属性 内容 必须
命令行 C:\Qt\5.15.2\msvc2019_64\bin\moc.exe “%(FullPath)” -o “moc_%(Filename).cpp” Y
说明 optional N
输出 moc_%(Filename).cpp Y
向项类型添加输出 C/C++ 编译器 Y

编译后会自动生成相关的moc_xxx.cpp文件。

解决方法二:

使用moc.exe 命令行的方式手动转换

C:\Qt\5.15.2\msvc2019_64\bin>moc.exe  "xxx.h" -o "moc_xxx.cpp"

但是这一步操作没有成功。如果需要转换的文件大, 可以写成脚本,批量的转换。

Qt Visual Studio生成moc文件相关推荐

  1. VS2017 下QT工程不能生成moc文件的解决方法

    1.选择要moc的类的头文件,鼠标右键属性,配置属性->常规,在项类型中将C/C++ 标头,改为自定义生成工具 2.左侧点击自定义生成工具,下方的常规,配置如下 命令行:"$(QTDI ...

  2. VS2015——Qt工程不能生成moc文件的解决办法

    问题:在VS2015开发Qt应用程序时发现,编译器提示无法关联信号槽,无法经过moc工具生成相关函数. 解决办法: 1.找到无法生成转换的槽函数头文件,右键头文件(xxx.h)-->找到属性选项 ...

  3. 使用Qt Visual Studio Add-in 实现中文ts文件,解决中文乱码问题

    本文只是描述Qt Visual Studio Add-in 在创建或者更新中文ts文件的时候,如何保证中文不乱码,当然其他的文件编码也适用此规则. 例子: 问题1:我们要生成中文的ts文件或者更新这个 ...

  4. 解决VS+QT无法生成moc文件的问题

    解决VS+QT无法生成moc文件的问题 参考文章: (1)解决VS+QT无法生成moc文件的问题 (2)https://www.cnblogs.com/pupilLZT/p/10760399.html ...

  5. 使用 Visual Studio 对源代码文件进行哈希处理以确保文件完整性

    对所有编译的软件语言来说,将人类可读代码转换成计算机可读代码都是一项软件保障挑战: 用户如何有信心相信在其计算机上运行的软件程序是根据开发者创建的同一源代码文件生成的呢? 这不一定,即使源代码文件经过 ...

  6. 解决方案-Visual Studio生成库(DLLLIB)以及如何调用

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 问题说明 使用VS编程时,一般会根据不同的场景需求将类封装成库文件,以供他人使用,比如我作为算法 ...

  7. qmoc文件_手动生成MOC文件

    一直以来我都是将moc命令写成批处理文件,并且一直使用很正常,今早来要为一个类生成moc文件,批处理是直接由以前正常运行的批处理文件改成,应该是没有什么错误的,其结果却发现我所要的moc文件并没有生成 ...

  8. AutoCAD.net: 用于ObjectARX 开发的Visual Studio 智能感知文件

    用于ObjectARX 开发的Visual Studio 智能感知文件!下载解压后是三个相关的XML文件(accui.xml,acdbmgd.xml,acmgd.xml),把它们放到你的AutoCAD ...

  9. Visual Studio的sln文件解析

    sln文件简介 Visual Studio使用解决方案文件(后缀为sln的文件)表示一个项目组,它通常包含一个项目中所有的工程文件信息.了解sln文件格式,可以手动修改错误的sln文件,也可以对解析s ...

  10. 如何在命令行模式下升级的你Visual Studio的Solution文件

    以前一直想过有没有什么办法能把一个VS早期版本的Solution文件能升级到高版本. 今天正好在MSDN里看到了有这样的Post. 基本模式如下: devenv SolutionFile | Proj ...

最新文章

  1. java redis 主从 哨兵_Redis主从复制与哨兵机制
  2. 清华大数据软件成果亮相第三届数字中国建设峰会成果展览
  3. EBOOT跳转到NK的过程
  4. 你确定自己不是那只猫吗
  5. JVM并发机制探讨—内存模型、内存可见性和指令重排序
  6. 知乎神回复:普通程序员一天的工作生活是怎样的?网友实名羡慕!
  7. JavaScript语法之语句、字面量、变量
  8. 计算机多媒体技术广泛应用于各个领域,新时期计算机多媒体技术的应用与发展趋势研究...
  9. DM7 达梦数据库 物理备份 相关概念说明
  10. S MT 精密电阻 对照 表
  11. 点云配准1-ICP算法 原理代码实现
  12. python的ls是什么意思_谏言给那些想学Python的人,建议收藏后细看!
  13. dcdc低压升压直流稳压高压负电压输出12v24v转-50V100V110V150V200V250V300V350V400V500V
  14. 如何过滤出已知当前目录下/llj中的所有一级目录?
  15. js获取当前日期前12月后12月日期
  16. SqlServer数据库 时间类型字段添加默认值 设置时间格式
  17. Web中的HTML、css、jQuery、js
  18. 网络监控器mrtg全攻略
  19. python怎么画渐变颜色_使用python画图怎么设置渐变色
  20. beast附加包安装:SNAPP安装出现问题的解决办法

热门文章

  1. 新手如何发网站外链,网站的外链如何发,发外链的方法集合
  2. candence的图纸大小设置_关于无法修改图纸大小的问题
  3. Centos5反p2p模块安装精要
  4. Linux下使用zlib实现文件压缩解压
  5. 腾讯云公网IP网络带宽收费价格表2023更新
  6. 【原创】我所亲证的气功层次 ——了空居士
  7. CleanMyMac最新4.10.5版本 智能一键扫描清理工具
  8. python 008 __ 小斌文档 | 元组
  9. 《软件工程(C编码实践篇)》学习总结
  10. php变异测试工具,科学网—两种突变检测的matlab代码 - 张凌的博文