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进行导入。


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

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


posted @ 2020-05-06 20:51  codeForFamily  阅读(480)  评论(0编辑  收藏  举报