2019年2月来的猝不及防,一年一年过得真快,留不住时光,只能通过自己的书写留下残存的记忆。以前没有感觉,年龄越大,越感觉记录的重要性。

在C++的开发道路上已经走了有段时间,最近才感觉自己掌握的太少。开发个简单的客户端什么的,真的没什么技术含量。但是自己又深入不下去。希望来年能多看几个开源的代码,ReView自己以前老的代码。不要以为冰山只有水面上的那么大,潜入水中,才能窥得全貌。这里开年第一篇,想了解下OSGI(Open Service Gateway Initiative)规范下的CTK里面的CTKPluginFramework插件系统框架。把自己在vs2015上面编译框架的流程和问题记录下来。

CTK源码下载:https://github.com/commontk/CTK (CTK官网

CMake下载:https://cmake.org

注:这里我下载cmake后没有安装,而是解压后直接打开的cmakegui.exe。安装和直接下载release包都可以。

  • 配置Cmake

目的:利用cmake打开最外层的CMakeList.txt文件,选择ctkPluginFramework子项,生成sln文件。

1、解压CTK-master.zip,修改qt的配置文件,因为ctk默认的qt版本为4.6以上的版本,我自己本地环境用的是QT5.9.6。修改配置文件的目录为CTK-master\CMake\ctkMacroSetupQt.cmake。如下图进行修改,将默认的版本号从4改成5。

如果不修改,在进行config读取配置的时候会出现如下图所示的提示信息。出现如下提示修改的时候需要清下Cache,切记。

2、通过cmakegui.exe进行配置,输入代码路径和库路径如下图:

3、进入configure页面,按照自己的所需选择编译环境,我这里选择的是Vs2015x86.点击finish后等待片刻即可。

 

  • 编译CTKPluginFramework

4、点击configure后如果下面编译提示信息如图所示,发现需要从git上cloneCTKData,如果出现这样的错误可以手动从CTKData上下载,然后将CTKData放到一个固定的位置(例如放到CTK-master目录中),并在CTK-master\CMakeExternals\CTKData.cmake中指定它的位置。设置完路径后继续configure。

5、编译成功(出现Configuring done)以后需要设定更改编译的默认配置,因为有些库在默认的情况下是不会生成的,他们的配置选项开关被设置为OFF。

所以,要生成CTKPluginFramework.dll、CTKWidget.dll,则需要修改CTK-master/CMakeLists.txt,将他们的开关设置为ON:

此外,还有一些核心插件也需要手动打开才能生成

注:如果想要生成log,eventadmin等工程把cmakelist里面org.commontk.plugingenerator.core plugin、org.commontk.plugingenerator.ui plugin、Enable Qt Widget libraries、Enable Plugin Framework开关打开即可。

6、默认情况下,CTK在编译时是不会自动安装的,打开CTK-master\SuperBuild.cmake做如下的更改

7、点击generate生成编译文件。点击openProject打开工程目录。

8、打开后点击all-build进行编译。弹出如下提示框并点击重新加载按钮进行重新加载。

9、重新加载后可以看到CTKPluginFramework的工程目录。

10、编译对应的工程目录即可生成。

 

  • 配置和编译过程中遇到的问题总结

问题已经在编译的过程中做了说明。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐