qt creator源码全方面分析(4-2)

Posted codeforfamily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt creator源码全方面分析(4-2)相关的知识,希望对你有一定的参考价值。

global头文件

插件的本质就是动态链接库,对于库,需要导出符号,供用户导入使用。在qt creator的源码中,存在固定的导入导出模式。

global.h

对于每个库和插件,都有一个xx_global.h头文件,其中xx为库或插件名。示例如下

#pragma once

#include <qglobal.h>

#if defined(XX_LIBRARY)
#  define XX_EXPORT Q_DECL_EXPORT
#else
#  define XX_EXPORT Q_DECL_IMPORT
#endif

这就很明显了,XX_LIBRARY作为开关,来决定导入导出。

xx.h

对于具体的实现,我们可以

class XX_EXPORT xx { ... }

在类的声明中添加XX_EXPORT。

在qt creator源码中,在项目文件中添加了定义

DEFINES += XX_LIBRARY

这导致XX_EXPORT被替换为Q_DECL_EXPORT进行导出。

对于库或插件的使用者,直接包含xx.h即可,由于没有定义XX_LIBRARY,这里XX_EXPORT被替换为Q_DECL_IMPORT进行导入。


原创造福大家,共享改变世界

献出一片爱心,温暖作者心灵

技术图片

以上是关于qt creator源码全方面分析(4-2)的主要内容,如果未能解决你的问题,请参考以下文章

qt creator源码全方面分析(2-0)

qt creator源码全方面分析(2-3-2)

qt creator源码全方面分析

qt creator源码全方面分析(4-3)

qt creator源码全方面分析(4-3)

qt creator源码全方面分析(4-5)