最近项目中有需求需要对DICOM影像进行处理, 因此需要使用到开源库DCMTK。编译与安装遇到了一些坑这里总结以下。
https://dicom.offis.de/dcmtk.php.en
下载后解压到D:\DCMTK\dcmtk-3.6.6目录下
网上上看了许多blog关于编译的说法众说纷纭,最后还是参考了官方的文档中的INSTALL相关说明
下载后解压到D:\DCMTK\dcmtk-3.6.6-html-help
编译x64的选带Win64的,编译x86的选win32的。
这里编译的是x64的项目因此选择红色的 dcmtk-3.6.6-win64-support-MD-iconv-msvc-15.8.zip
另外带icu的版本好像是支持unicode相关,这里没有用到。
下载后解压到 D:DCMTK\dcmtk-3.6.6-win64-support-MD-iconv-msvc-15.8
MD的意思是使用表示动态连接msvcrt.dll (debug版连接msvcrtd.dll)这样构建的静态库较小也不需要在多个项目中重复连接入libmcrt.lib
MT表示静态连接C++运行库,会导致编译后的库文件体积较大。但是不需要目标系统安装VC++运行库。现在基本上运行环境都会有安装VC++ runtime,因此选择MD版本能够更加节省资源。
(CMAKE是一个跨平台的配置编译依赖的工具。它能生成每个平台下不同的编译配置文件。比如Windows上的.sln, Linux下的Makefile,MacOSX下的xcode等)
选择最新的Windows x64版本下载安装即可
CMAKE配置过程会生成build目录(用于生成.sln的目录)以及install目录(编译后会生成include, lib等提供给其他程序编译使用)
这里分别建立 D:\DCMTK\dcmtk-3.6.6-build 以及 D:\DCMTK\dcmtk-3.6.6-install 两个目录
最后整个目录结构图如下所示:
由于项目中需要用到DCMTKJP2K组件(需要另行付费购买)
将dcmtkjp2k的源文件放入“D:\DCMTK\dcmtk-3.6.6”目录中
修改“D:\DCMTK\dcmtk-3.6.6”中的CMakeList.txt 并在其中找到“# Modules to be built”在后面添加“dcmtkjp2k”
修改后的CMakelist.txt文件如下:
此时准备工作完成。