CTK插件框架学习1-编译CTK-MINGW

CTK插件框架学习1-编译CTK-MINGW首先下载CMake官网下载地址:https://cmake.org/download/

大家好,又见面了,我是你们的朋友全栈君。

经常使用Qt Coding,无意中接触到CTK,也就因此查到了所谓的OSGi,其中OSGi架构中的“模块化”和“热插拔”看起来很厉害的样子,于是就打算研究一下,以此系列博客作为学习笔记。

1. CTK插件框架简介

CTK Plugin Framework是用于C++的动态组件系统,以OSGi规范为模型。在此框架下,应用程序由不同的组件组成,遵循面向服务的方法。
ctk是一个开源项目,Github 地址:https://github.com/commontk。
从ctk官网http://www.commontk.org/上可以查到一些简单信息,但开发资料很少,不过无妨,学习本身就是一个坎坷的过程,试错成本低呀。

2. 相关软件安装

首先参看官方主页CTK Users->Build Instructions,大概安装操作步骤如下
在这里插入图片描述
步骤简洁明了,也就是用git下载代码后,用cmake编译。

2.1 ctk代码下载

winddows下需要先安装git bash,然后在git bash中执行如下命令。

git clone git://github.com/commontk/CTK.git

同时,在ctk同级目录下,创建个ctk-superbuild目录,用来存放后续编译生成的文件。

2.2 cmkae安装

我这里电脑里默认用的是MINGW+QT5的开发环境,便于代码在window和linux系统之间做迁移。
首先打开QT安装目录下的MaintenanceTool.exe工具,选择Add or remove components,确保如下两个组件(mingw、cmake)都给安装了。
在这里插入图片描述
然后,选择我的电脑->属性->高级系统设置->环境变量,修改Path环境变量,添加如下两个环境变量,也即是上一步安装的两个组件(mingw与cmake)的路径。
在这里插入图片描述

3. 编译CTK

3.1 用cmake-gui产生makefile

查了下cmake目录下并没有ccmake程序,但是有个cmake-gui,用起来起始功能差不多。打开cmake-gui,配置下source cod与build the binaries的路径
在这里插入图片描述
点击Configure按钮,在弹框中配置generator为MinGW Makefiles,然后点击Next,配置下MinGW编译器路径。
在这里插入图片描述
在这里插入图片描述
点击确认后默认首次generate会报错,因为默认CTK配置的Qt版本为QT4,需要做更改。
在这里插入图片描述
选择参数配置中的CTK项,将CTK_QT_VERSION从4改成5。
在这里插入图片描述
另外,把CTK下面CTK_ENABLE_PluginFramework也改为打开。
最后点击generate,成功时会有”configuring done Generating done”打印,这时,ctk-superbuild目录下应该有Mkaefile生成了。
在这里插入图片描述

3.2 编译

用win10下强大的Windows PowerShell软件,进入到ctk-superbuild目录,然后用mingw32-make命令进行编译。
在这里插入图片描述
编译完成,结果如下图所示。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142701.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决调用未定义 swoole_async_readfile函数问题

    解决调用未定义 swoole_async_readfile函数问题

    2022年2月12日
    51
  • 关于kafuka的简单认识与理解「建议收藏」

    关于kafuka的简单认识与理解「建议收藏」因为工作中负责维护的产品中有使用消息中间件kafuka的系统,所以把工作中的理解和遇到的问题总结出来,方便后期查看,好记性不如烂笔头。kafuka是一个分布式的、分区化、可复制提交的发布订阅消息系统,使用kafuka需要对其中的一些概念做简单了解。一、kafuka基础1、topic主题:Kafka中用于区分不同类别信息的类别名称。由producer指定2、Producer:将消息发布到Kafka特定的Topic的对象3、Consumers:订阅并处理特定的Topic中的消息的对象4、broke

    2022年6月11日
    47
  • jenkins allure_jenkins编译打包部署

    jenkins allure_jenkins编译打包部署前言jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了。allure安装在运行代码的服务器本机,我这里是用的dock

    2022年7月30日
    10
  • 英语词性介绍及转换

    英语词性介绍及转换

    2021年8月15日
    95
  • linux c 报错 warning: large integer implicitly truncated to unsigned type[-Woverflow]

    linux c 报错 warning: large integer implicitly truncated to unsigned type[-Woverflow]警告的原因是:整数溢出整数溢出:当整数达到它所能表述的最大值时,会重新从起点开始#include<stdio.h>intmain(void){ unsigneda=12345678910; printf(“a=%d\n”,a); return0;}该程序输出以后并不是输出a=12345678910而是:上面的代码还不足以说明清楚下面才是重头戏:#include<stdio.h>intmain(void){ inta=2

    2022年7月25日
    23
  • 简述vue和jquery的区别「建议收藏」

    简述vue和jquery的区别「建议收藏」⾸先呢jquery他是⽤js封装的⼀个类库,主要是为了⽅便操作dom元素,⽽vue他是⼀个框架,并且呢,他会从真实dom构建出⼀个虚拟的dom树,通过di!算法渲染只发⽣改变的dom元素,其他的相同的dom元素不⽤在重新渲染.⽽使⽤jquery去改变dom元素的时候,即使有相同的dom元素也会重新渲染,jq重点操作dom,而vue重点操作数据;简单的来说就是:jquery是通过使用选择器($)选取dom对象,进行dom对象的操作,实现数据操作;它

    2022年10月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号