采用ctkPluginFramework作为一个插件系统开发框架确实有很多优点。

有些车站最近收到的一封信,每个人都想用ctkPluginFramework但我不知道如何建立,本教程对谈ctkPluginFramework插件系统在Windows下的编译过程。

准备条件:

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

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

相关网站:

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

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

编译步骤:

注意:以下文件夹中出现的文件,因为是我已经编译过的,因此可能会和刚下载的多出非常多文件。在这里仅说明流程是如何的。

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG91cWQyMDEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" height="207" width="801">

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

Git下载完毕后,其文件夹结构例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG91cWQyMDEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" height="471" width="807" alt="">

如上图。打开cmake工具。选择刚下载的CTK文件夹,它会自己主动依据CMakeList.txt文件载入子项目,例如以下图所看到的。

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

3. VS2010下打开sln文件。进行编译生成CTKPluginFramework.dll和CTKCore.dll。

使用VS2010打开sln文件后,结构例如以下所看到的:

选择ALL BULID编译完毕。就可以生成终于的CTKPluginFramework.dll,插件系统所应用的dll就是该文件。

终于,在CTK/CTK-build/bin/debug/下就可以生成终于的CTKCore.dll和CTKPluginFramework.dll文件以及相应的lib文件,再利用头文件就能够构建基于插件开发的系统,例如以下图所看到的:

总结:

如上所看到的,ctkPluginFramework的编译还是非常easy,关键是要和业务结合。在项目中合理地使用它,相信它会给大家带来意想不到的优点,尤其是面对大型项目、多人协作开发的过程中。怎样构建一个项目的结构以及怎样在项目中使用插件式开发,CTK的官方网站也相关介绍,但我觉得不是很清楚,在接下来的写博文的具体使用。

版权声明:本文博主原创文章,博客,未经同意不得转载。

【夸QT在十五】ctkPluginFrameWork插件系统Windows编译器的更多相关文章

  1. 【大话QT之十六】使用ctkPluginFramework插件系统构建项目实战

    "使用ctkPluginFramework插件系统构建项目实战",这篇文章是写博客以来最纠结的一篇文章. 倒不是由于技术都多么困难,而是想去描写叙述一个项目架构採用ctkPlugi ...

  2. [原]Jenkins(十五)---jenkins插件之deploy

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...

  3. Android核心分析之十五Android输入系统之输入路径详解

       Android用户事件输入路径 1 输入路径的一般原理 按键,鼠标消息从收集到最终将发送到焦点窗口,要经历怎样的路径,是Android GWES设计方案中需要详细考虑的问题.按键,鼠标等用户消息 ...

  4. 一百四十五:CMS系统之帖子加精和取消加精

    模型 class HighlightPostModel(db.Model): """ 帖子加精信息 """ __tablename__ = ...

  5. 一百三十五:CMS系统之UEditoe编辑器集成以及配置将图片上传到七牛

    富文本编辑框,选择UEditor 下载地址:http://ueditor.baidu.com/website/download.html 使用说明:http://fex.baidu.com/uedit ...

  6. 一百二十五:CMS系统之首页轮播实现

    把base模板分为左右两块版心 .main-container{ /*整体版心*/ width: 990px; margin: 0 auto; overflow: hidden;}.lg-contai ...

  7. 一百一十五:CMS系统之实现点击更换图形验证码功能

    把验证码渲染到到页面上 访问,显然,是标签有个内边距 去掉内边距 加一个class 如果放大看的话,还有问题 用js实现点击更换图形验证码:生成查询字符串的形式访问图形验证码接口的url,放到img标 ...

  8. Gradle 1.12用户指南翻译——第四十五章. 应用程序插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. Gradle 1.12用户指南翻译——第二十五章. Scala 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

随机推荐

  1. SQLite/嵌入式数据库

    SQLite/嵌入式数据库 的项目要么不使用数据库(一两个文配置文件就可以搞定),要么就会有很多的数据,用到 postgresql,操练sqlite的还没有.现在我有个自己的小测试例子,写个数据库对比 ...

  2. [Oracle] 常用工具集之 - SQL*Loader

    SQL*Loader原理 SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高.其示 ...

  3. [Android代码阅读]分类简介

    分类简介: 阅读他人的代码,可以学到很多东西,从思路,到方案,一系列都可以在项目代码中体现,所以,此分类专门用于记录阅读过的项目代码,并在上面给出自己的理解和注释 在此,感谢原作者开源分享项目代码

  4. 做SEO所要具备的四种能力

    1,不为失败找借口         既然我们选择了做SEO,那么发生网站被降权.被K是常常的事.当这样的情况发生时,大部分站长首先将责任推给百度机制,由于百度更新算法调整遭降权,不是由于他们的优化没有 ...

  5. “>>”和“>>>” java

    “>>”算术右移运算符, 表示带符号右移,它使用最高位填充移位后左侧的空位.右移的结果为:每移一位,第一个操作数被2除一次,移动的次数由第二个操作数确定.按二进制形式把所有的数字向右移动对 ...

  6. poj3642 Charm Bracelet(0-1背包)

    题目意思: 给出N,M,N表示有N个物品,M表示背包的容量.接着给出每一个物品的体积和价值,求背包可以装在的最大价值. http://poj.org/problem? id=3624 题目分析: o- ...

  7. CSS实现输入框的高亮效果-------Day50

    又到周末了,这一天天过的真快,明天应该回老家了.不知道会不会有机会进行编写.尽量争取吧,实在不想就这样间断.假设说从前会一天天无聊到爆,那如今自己应该是一天天忙的要死,欠缺了太多东西,那些浪费的时间可 ...

  8. poj3311(状压dp)

    题目连接:http://poj.org/problem?id=3311 题意:一个送披萨的,每次送外卖不超过10个地方,给你这些地方之间的时间,求送完外卖回到店里的总时间最小. 分析:跑一遍Floyd ...

  9. yum 安装软件时报错

    报错信息 Another app is currently holding the yum lock; waiting for it to exit 处理方法 rm -rf /var/run/yum. ...

  10. Codeforces 549G. Happy Line 馋

    非常有趣的贪婪: Let's reformulate the condition in terms of a certain height the towers, which will be on t ...