博客
关于我
qt中moc的作用
阅读量:400 次
发布时间:2019-03-06

本文共 428 字,大约阅读时间需要 1 分钟。

 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这一操作的就是 moc。

moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了 Q_OBJECT 宏的实现代码。这个新的文件名字将会是原文件名前面加上 moc_ 构成。这个新的文件同样将进入编译系统,最终被链接到二进制代码中去。因此我们可以知道,这个新的文件不是“替换”掉旧的文件,而是与原文件一起参与编译。另外,我们还可以看出一点,moc 的执行是在预处理器之前。因为预处理器执行之后,Q_OBJECT 宏就不存在了。

在命令行下输入moc yourfilename.h -o moc_youfilename.cpp生成不带Q_OBJENT的源文件。

转载地址:http://gfbkz.baihongyu.com/

你可能感兴趣的文章
[Python学习笔记]组织文件
查看>>
基于Redo Log和Undo Log的MySQL崩溃恢复流程
查看>>
从RocketMQ的Broker源码层面验证一下这两个点
查看>>
如何正确的在项目中接入微信JS-SDK
查看>>
纵览全局的框框——智慧搜索
查看>>
快服务流量之争:如何在快服务中占领一席之地
查看>>
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
查看>>
Unity平台 | 快速集成华为性能管理服务
查看>>
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
查看>>
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
查看>>
使用Power BI构建数据仓库与BI方案
查看>>
pytest封神之路第二步 132个命令行参数用法
查看>>
Django认证系统并不鸡肋反而很重要
查看>>
快用Django REST framework写写API吧
查看>>
tep用户手册帮你从unittest过渡到pytest
查看>>
12张图打开JMeter体系结构全局视角
查看>>
Spring Boot 2.x基础教程:构建RESTful API与单元测试
查看>>
[UWP 自定义控件]了解模板化控件(1):基础知识
查看>>
UWP 自定义控件:了解模板化控件 系列文章
查看>>
[UWP]从头开始创建并发布一个番茄钟
查看>>