ctkPluginFramework编译qt5.12_vs2017_gcc4.8

前言

       使用ctkPluginFramework作为插件系统框架的确有着众多开发上的优势。最近收到一些站内信,大家都想使用ctkPluginFramework但是不知道如何编译,这篇教程就来讲一讲:

1. ctkPluginFramework插件系统在Windows下的编译过程,使用qt5.12_vs2017

            这里使用使用qt5.12下面的 msvc2017_64

准备条件:

        1. 安装Git,我们通过它来下载CTK的源码。

        2. 安装CMake,我们用它来生成vs下的sln解决方案文件。

相关站点:

        1. CTK的官网:http://www.commontk.org/index.php/Main_Page

        2. CTK源码下载地址:https://github.com/commontk/CTK

        3. Git下载地址:https://git-scm.com/

        4. CMake下载地址:https://cmake.org/ 

注意:这里git必须安装,应为在使用CMake编译源码的时候,需要用到ctkData,如果没有编译会报错,所以编译时需要联网, 

当然也可以自己手动下载ctkData,放到源码对应的目录,在CMakeLists.txt配置文件中,把ctkData对应的选项修改成对应的目录。手动从https://github.com/commontk/CTKData上下载CTKData,然后将CTKData放到一个固定的位置(例如放到CTK-master目录中),并在CTK-master\CMakeExternals\CTKData.cmake中指定它的位置。设置完路径后继续configure。

ctkPluginFramework编译qt_vs2017_gcc

ctkPluginFramework编译qt_vs2017_gcc

 

 

编译步骤:

        注意:下面目录中出现的文件,由于是我已经编译过的,因此可能会和刚下载的多出很多文件,在这里仅说明流程是怎样的。

        1. Git下载源码包。Git下载地址:https://github.com/commontk/CTK.git 。

           ctkPluginFramework编译qt_vs2017_gccctkPluginFramework编译qt_vs2017_gcc

 

ctkPluginFramework编译qt_vs2017_gcc

  如上图,打开cmake工具,选择刚下载的CTK目录,它会自动根据CMakeList.txt文件加载子项目,如下图所示;

ctkPluginFramework编译qt_vs2017_gcc

 

ctkPluginFramework编译qt_vs2017_gcc

 出现第一个error,根据出现的error我们添加qt5的路径,继续configure:

选择ctkPluginFramework模块,点击Generate, Configure;完成后,查看是否生成sln文件,注意:此处一定要勾选上图中标注的CTK_ENABLE_PluginFramework,不然编译生成的sln文件也无法生成最终的CTKPluginFramework.dll文件;

ctkPluginFramework编译qt_vs2017_gcc

勾选advanced,作以下配置:

Build_testing 取消

CTK_ENABLE_WIDIGETS 勾选

CTK_LIB_VISUALIZATION/VTK/CORE 勾选

CTK_LIB_VISUALIZATION/VTK/WIDGETS 勾选

CTK_LIB_WIDGETS 勾选

ctkPluginFramework编译qt_vs2017_gcc

注意:以上设置完成继续configure,出现下图,我们勾选CTK_LIB_VISUALIATION/VTK/WIDGETS_USE_TRANSFER_FUNCTION_CHARTS,继续configure

当时发现CMake里面还是有红色的警告,把Qt5GUI_DIR、Qt5OpenGL_DIR、Qt5UiTools_DIR、Qt5Widget_DIR这几个红色的配置项的值修改成你本地qt5的安装路径

ctkPluginFramework编译qt_vs2017_gcc

以上设置完成继续configure,出现下图,我们勾选CTK_LIB_VISUALIATION/VTK/WIDGETS_USE_TRANSFER_FUNCTION_CHARTS,继续configure

ctkPluginFramework编译qt_vs2017_gcc

这样才算完全编译正确,没有任何共色警告

2. 在生成路径下面会看到CTK.sln,使用Vs2017打开,选择ALL_BUILD,进过大概20多分钟,视自己电脑配置情况而定

ctkPluginFramework编译qt_vs2017_gcc

ctkPluginFramework编译qt_vs2017_gcc

3. 生成.h头文件,lib静态库,和dll动态库,最核心的只有2个CTKCore.lib/dll  CTKPluginFramework.lib/dll

我这里额外编译了CTKWidgets.lib,是为了使用ctkWidget,ctkWidget里面封装了QWdget,并扩展了QWidgeht

另外为了使用ctk事件机制,有多编译了org_commontk_eventadmin.lib org_commontk_log.lib  org_commontk_configadmin.lib 

org_commontk_metatype.lib 这些库在CMake里面都是可配置的

ctkPluginFramework编译qt_vs2017_gcc

2. ctkPluginFramework插件系统在Windows下使用MinGW的编译过程

   用cmake-gui产生makefile

查了下cmake目录下并没有ccmake程序,但是有个cmake-gui,用起来起始功能差不多。打开cmake-gui,配置下source cod与build the binaries的路径

ctkPluginFramework编译qt_vs2017_gcc

点击Configure按钮,在弹框中配置generator为MinGW Makefiles,然后点击Next,配置下MinGW编译器路径。

ctkPluginFramework编译qt_vs2017_gcc

ctkPluginFramework编译qt_vs2017_gcc

点击确认后默认首次generate会报错,因为默认CTK配置的Qt版本为QT4,需要做更改成5。

ctkPluginFramework编译qt_vs2017_gcc

ctkPluginFramework编译qt_vs2017_gcc

ctkPluginFramework编译qt_vs2017_gcc

另外,把CTK下面CTK_ENABLE_PluginFramework也改为打开。
最后点击generate,成功时会有"configuring done Generating done"打印,这时,ctk-superbuild目录下应该有Mkaefile生成了。

ctkPluginFramework编译qt_vs2017_gcc

ctkPluginFramework编译qt_vs2017_gcc

编译

用win10下强大的Windows PowerShell软件,进入到ctk-superbuild目录,然后用mingw32-make命令进行编译。

ctkPluginFramework编译qt_vs2017_gcc

 

ctkPluginFramework编译qt_vs2017_gcc

如果读者嫌麻烦,我这里有编译好的ctk库,使用环境,

windows10+qt5.12+vs2017

下载地址: ctkPluginFramework编译库,事件订阅分发机制例子

      https://download.csdn.net/download/aoxuestudy/12846809

相关文章:

  • 2021-08-05
  • 2021-08-25
  • 2022-12-23
  • 2021-11-06
  • 2021-06-18
  • 2021-09-03
  • 2021-10-30
  • 2022-02-09
猜你喜欢
  • 2022-12-23
  • 2021-11-29
  • 2021-11-18
  • 2022-12-23
  • 2021-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案