CTK编译教程(64位环境 Windows + Qt + MinGW或MSVC + CMake)
本文于1238天之前发表,文中内容可能已经过时。
CTK 简介
当前,CTK 工作的主要范围包括:
- DICOM:提供了从 PACS 和本地数据库中查询和检索的高级类。包含 Qt 部件,可以轻松地设置服务器连接,并发送查询和查看结果。
- DICOM Application Hosting:目标是创建 DICOM Part 19 Application Hosting specifications 的 C++ 参考实现。它提供了用于创建主机和托管应用程序的基础设。
- Widgets:用于生物医学成像应用的 Qt Widgets 集合。
- Plugin Framework:用于 C++ 的动态组件系统,以 OSGi 规范为模型。它支持一个开发模型,在这个模型中,应用程序(动态地)由许多不同(可重用的)组件组成,遵循面向服务的方法。
- Command Line Interfaces:一种允许将算法编写为自包含可执行程序的技术,可以在多个终端用户应用程序环境中使用,而无需修改。
Qt Creator 下 CMake 配置
CMake安装包自行到CMake官网进行下载安装,我下载的是cmake-3.19.5-win64-x64.zip免安装版,下载成功后解压缩后放在适当的位置。
之后打开 Qt Creator,在菜单中选择:【工具】—>【选项】 —>【Kits】,在弹出的对话框中选择进入“CMake”标签页,由于选择的CMake版本不是安装版,因此这里CMake 不会被自动检测出来,需要手动配置,配置方法如下:
1 | 1.先点击ADD按钮; |
进入“Kits”标签页,进行CMake配置,具体配置情况如下所示:
- MSVC2019
1 | 1.先点击ADD按钮; |
MinGW
不建议用MinGW编译。笔者使用MingW编译出的CTK,无法使用
1 | 1.先点击ADD按钮; |
CTK源码配置
1.1 源码下载
从Github-CTK上获取源码,然后解压缩。
1.2 Qt兼容性配置
为了避免Qt版本兼容性问题,需要将CTKmaster/CMake/ctkMacroSetupQt.cmake 文件中CTKQTVERSION 由 4 改为 5。修改后可以避免如下编译错误。
1 | set(CTK_QT_VERSION "5" CACHE STRING "Expected Qt version") |
1.3 CTKData配置
手动从https://github.com/commontk/CTKData 上下载 CTKData,然后将 CTKData 解压后放到一个固定的位置(我是放在CTKmaster根目录下),并在CTKmaster/CMakeExternals/CTKData.cmake 中对CTKData的路径进行配置。
1 | #set CTKData_path |
1.4 生成库相关的开关配置
由于默认配置下,有些库/插件(CTKPluginFramework.dll、CTKWidgets.dll以及其他库)是不会自动生成的,因为我们需要在 CTKmaster/CMakeLists.txt文件中修改的相应的开关设置,将OFF改为ON。
1 | ctk_lib_option(Core |
1 | foreach(_plugin ${plugin_list}) |
不对CTK进行调试,为了加快编译速度,要关闭调试BUILD_TESTING,同时不关闭编译还可能编译出错。
1 | option(BUILD_TESTING "" OFF) |
1.5 安装配置
默认配置下CTK 在编译时是不会自动安装的, 因此需要手动在CTKmaster/SuperBuild.cmake 文件中进行安装步骤及安装路径的配置。
1 | #add install command |
CTK编译
进行完上述所有配置后就可以开始进行编译,以“管理员权限”运行QtCreator,使用Qt Creator 打开CTKmaster/CMakeLists.txt , Kit 选择刚刚配置好的CMake。
进行编译,右键项目:“执行 CMake >构建”后发现左侧的项目结构已经被展开了,经过漫长的编译过程,CTK 编译成功!*必须以“管理员权限”运行QtCreator进行编译,可能会因为QtCreator权限不够导致编译失败。
在CTKbuild/bin目录下查看已经编译好的库,可以看到所有的库都已经生成。
进入安装目录 CTKInstall/include和 CTKInstall/lib下查看发现成功安装。