CTK插件框架学习-源码下载编译(01)

1、编译环境

window11、vs17、Qt5.14.0、cmake3.27.4

2、下载链接

cmake:Index of /files/v3.20

qt:Index of /

vs22以前的版本需要登录下载:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本

vs22下载:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

CTK:源码GitHub - commontk/CTK: A set of common support code for medical imaging, surgical navigation, and related purposes.

CTKData 源码: https://github.com/commontk/CTKData

注:最新版的CTK不需要下载CTKData,cmake完成后编译工程时会自动从GitHub上下载到CTK\build文件夹内,无网络环境手动拷贝,删除git路径,点击add Entry按钮添加即可。

3、使用cmake编译

3.1

3.2

3.3 修改源码目录下的SuperBuild.cmake文件, 将 INSTALL_COMMAND "" 修改为 INSTALL_COMMAND ${_INSTALL_CMD}

3.4 勾选CTK下几个配置项,全体模块根据需要自行勾选

CTK_ENABLE_PluginFramework
CTK_ENABLE_Widgets
CTK_LIB_PluginFramework
CTK_LIB_Widgets
CTK_PLUGIN_org.commontk.configadmin
CTK_PLUGIN_org.commontk.eventadmin
CTK_PLUGIN_org.commontk.log
CTK_PLUGIN_org.commontk.metatype


3.5 修改CMAKE下安装路径,尽量不要放在C盘防止写入失败

3.6 再次点击Configure,显示配置完成,且配置项内无标红

3.7 点击Generate,显示生成成功,Open Project按钮变为可用状态即编译成功

3.8 进入新建的build目录下,打开CTK.sln工程,编译即可。

3.9 编译成功的头文件、库文件会保存到build/CTK-install文件夹内,其他工程引用即可。

3.10 注意编译CTK时使用的版本,即平台应与使用环境一致。

3.11 测试CTK

#include "CTKPlugin.h"
#include <QtWidgets/QApplication>
#include <iostream>
#include <QStyleFactory>
#include <QDir>
#include <QDirIterator>
#include "ctkPluginFrameworkFactory.h"
#include "ctkPluginFramework.h"
#include "ctkPluginException.h"
#include "ctkPluginContext.h"
#include "ctkPluginFrameworkLauncher.h"int main(int argc, char *argv[])
{QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QApplication a(argc, argv);a.setApplicationName("ctktest");// 启动插件工厂ctkPluginFrameworkFactory* ctkFrameWorkFactory = new ctkPluginFrameworkFactory;QSharedPointer<ctkPluginFramework> framework = ctkFrameWorkFactory->getFramework();try {framework->init();framework->start();}catch (const ctkPluginException& e){std::cout << "framework init fail" << std::endl;}return a.exec();
}

无报错,window下CTK编译测试成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试真题实战应用【赛题代码篇】-整数与IP地址间的转换(附Java、C++和python代码实现)

目录 问题描述 输入描述: 输出描述: 示例: 代码实现 Java 代码2 代码3

Arduino IDE工程代码多文件编程和中文设置

一、esp8266模块信息 二、中英文切换 点击文件( File )–选择首选项( Preference )—选择语言( Language )—选择中文–点击确定( OK ) 三、多文件编程 在Arduino编程中&#xff0c;将代码分割成多个文件是一种很好的做法&#xff0c;特别是项目变得越来越大和复杂时。这样…

Linux 系统是如何收发⽹络包的

Linux 系统是如何收发⽹络包的&#xff1f; ⽹络模型 为了使得多种设备能通过⽹络相互通信&#xff0c;和为了解决各种不同设备在⽹络互联中的兼容性问题&#xff0c;国际标准化组织制定了开放式系统互联通信参考模型&#xff08;Open System Interconnection Reference Mode…

亚马逊云科技:企业如何开启生成式AI之旅?

如果要评选最近两年全球科技行业最热门的细分领域&#xff0c;那么生成式AI绝对会以遥遥领先的票数成为当仁不让的冠军。 然而眼见生成式AI发展得如火如荼&#xff0c;越来越多的企业却陷入了深深的焦虑&#xff1a;应该如何开启生成式AI之旅&#xff1f;又该怎样搭建大模型&am…

对七层代理、四层代理、正向代理、反向代理的认识

一、理解nginx服务代理 Nginx代理有正向和反向代理两种类型&#xff0c;可以基于osi七层模型中的第四层&#xff08;传输层&#xff09;和第七层&#xff08;应用层&#xff09;进行代理 注&#xff1a; nginx 一般支持的是7层代理&#xff0c;支持四层代理一般使用 lvs 或者ha…

Data.olllo:一键去除相同内容数据列!

引言&#xff1a; 在数据处理的舞台上&#xff0c;重复数据常常像调皮的小精灵一样&#xff0c;频繁出现&#xff0c;让人头疼不已。但现在&#xff0c;有了Data.olllo的神奇功能&#xff0c;您可以一键去除相同内容数据列&#xff0c;让数据处理变得轻松愉快&#xff01; 功能…

Android中广播的基本介绍

文章目录 1. 广播的概念2. 广播的基本组成2.1 广播发送器2.2 广播接收器 3. 广播注册3.1 动态注册3.2 静态注册 1. 广播的概念 BroadcastReceiver&#xff0c;广播接收器&#xff0c;是Android四大组件之一&#xff0c;可用来跨进程通信的一种机制。当然&#xff0c;也可以用于…

虹科Pico汽车示波器 | 免拆诊断案例 | 2019 款东风悦达起亚K2车怠速起停系统工作异常

一、故障现象 一辆2019款东风悦达起亚K2车&#xff0c;搭载G4FG发动机&#xff0c;累计行驶里程约为9 400 km。车主反映&#xff0c;行驶至路口停车等红灯时&#xff0c;怠速起停&#xff08;ISG&#xff09;系统自动使发动机熄火&#xff0c;接着组合仪表提示“怠速起停已解除…

某东联盟js逆向

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

mysql无法看到3306端口监听

参考:https://blog.csdn.net/shumeigang/article/details/103902459 mysql> show global variables like ‘port’; 是0 原因是我的my.cnf有话&#xff1a; skip-network 或 注释掉&#xff0c;然后重新启动下数据库&#xff0c;运行netstat -an|grep 3306 就可以看到了

C#非强签名dll搜索顺序

由于不是强签名dll&#xff0c;所以无效考虑全局程序集缓存 (GAC)。 预备工作 新建解决方案ClassLibrary1,新建类库ClassLibrary1,新建控制台程序ShowDllLoc。 利用VS添加引用。 一&#xff0c;利用app.config设置codebase&#xff0c;设置dll的加载路径为&#xff1a;code…

Java中的类与对象

面向对象 设计对象并使用 类: 是共同特征的描述(设计图) 对象: 是真实存在的具体实例 Javabean类: 用来描述一类事物的类,在Javabean类里是不写main方法的 注意: 类名首字母要大写,见名知意,(驼峰模式) 注意: 在实际开发中,建议一个文件定义一个class类 代码: package com.…

C#探索之路基础篇(1):编程中面向过程、数据、对象的概念辨析

文章目录 C#探索之路基础篇(1)&#xff1a;编程中面向过程、数据、对象的概念辨析1 面向过程编程1.1 概念1.2 示例代码&#xff1a;1.3 使用范围与时机&#xff1a;1.4 注意事项&#xff1a;1.5 通俗讲法 2 面向对象编程2.1 概念2.2 示例代码2.3 使用范围2.4 注意事项2.5 通俗讲…

软考高级:UML定时图概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

每天学习一个Linux命令之useradd

每天学习一个Linux命令之useradd 介绍 Linux操作系统提供了许多命令来管理用户和用户组。其中一个重要的命令是useradd&#xff0c;它用于在系统中创建新用户。useradd命令提供了许多选项来控制创建用户的行为。本文将逐一介绍useradd命令的所有可用选项。 可用选项 userad…

Java部署运维

1.docker Docker&#xff08;一&#xff09;&#xff1a;安装、命令、应用Docker(二)&#xff1a;数据卷、Dockefile、Docker-composeDocker(三) 通过gitlab部署CICD Docker超详细教程——入门篇实战 Docker教程 2.nginx 3.keepalived 4.k8s 5.jekenis

KW音乐搜索参数

声明&#xff1a; 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 逆向目标: …

Pytorch之Dataset和DataLoader的注意事项

1、数据集的保存形式&#xff1a;一行一行的。 比如说预测两个值的加法&#xff1a;abc&#xff0c;那么传进Dataset的形式应该是 a1,b1,c1 a2,b2,c2 ... an,bn,cn 2、代码 import numpy as np import pandas as pd import torch from torch.utils.data import DataLoader, D…

【Git】第一课:Git的介绍

简介 什么是Git? Git是一个开源的分布式版本控制系统&#xff0c;用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建&#xff0c;现已成为开源软件开发中最流行的版本控制系统&#xff0c;没有之一。Git允许多人同时在不同的分支上工作&…

【leetcode热题】轮转数组

给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4…