在上一篇博客中已经实现了一个简单的插件和测试程序的编写,但是插件跟应用是分开独立的工程。实际应用开发中需要把相关的库和头文件打包到一个工程中,如下图所示,这样比较方便调试开发,也为创建跨平台工程提供了便利。
此节我们将创建一个示例工程,工程文件中包含应用程序以及要使用的各个插件,同时将各个平台编译后的ctk插件库文件也整合到一起。目前支持如下三个平台:
系统 | CPU | 编译器 | 说明 |
---|---|---|---|
windows | x86_84 | msvc | 64位系统 |
linux | x86_64 | gcc | 64位系统 |
linux | arm64 | gcc | 64位系统 |
后续考虑增加windows-mingw以及linux-arm32两个平台的支持,接下来简单介绍下工程的实现。
1.工程创建
打开Qt Cteator,选择文件->新建文件或项目->其它项目->Empty qmake Project,新建一个空的qmake工程,这里取名为CtkpluginProj
。
通过文件浏览器进入到该工程目录下,新建三个目录,分别命名为application
,plugin-*
,plugindepends
。其中application目录用来存放应用程序,plugin-*为创建的一个插件示例,plugindepends用来存放ctk库文件。目录创建完如下图所示,这里插件取名为appinfo,也就是一个用来获取应用信息的插件。
1.1 plugindepends文件拷贝
plugindepends目录下存放ctk库的头文件以及其编译生成库文件。首先将ctk源码目录中的Libs/Core与Libs/PluginFramework两个目录拷贝到plugindepends目录下,core目录与pluginframework目录中存放着插件与应用程序编译所依赖的头文件,同时需要将编译生成的两个头文件也拷贝过来,分别是ctkCoreExport.h与ctkPluginFrameworkExport.h,它们分别位于CTK-build/Libs/Core与CTK-build/Libs/PluginFramework目录下。
上面步骤仅拷贝所需的头文件即可,接下来开始拷贝编译ctk后生成的库文件,考虑到跨平台,这里为每个平台各创建一个目录,并将相应的库文件拷贝进去,目前在windows-x64、linux-x64、linux-arm64三个平台下编译了ctk库,因此这里就创建lib-linux-arm64-gcc
、lib-linux-x64-gcc
、lib-windows-x64-msvc
三个目录。创建完成如下图所示。