DCMTK3.6.0 (MT支持库)安装 完整说明
环境WIN7 + VisualStudio2010 + dcmtk3.6.0 + Cmake2.8.6
准备工作:
从dcmtk官方网站下载源代码及支持库文件。分别名为:dcmtk-3.6.0 dcmtk-3.6.0-win32-i386-support_MT.(注意,要下载***support的压缩文件,而不要下载上面单独列出来的支持库)。将这些压缩文件解压缩到硬盘上一个单独的文件夹里,我的解压缩目录是D:\DCMTK\。
从cmake官方网站下载cmake的安装文件,我下载的是最新的2.8.6版。将其安装到计算机任意目录下。
正文:
1. 将支持库中的相应lib文件,include文件,bin文件拷贝到VS2010安装目录的相应文件夹下。
A. 在解压得到的支持库的文件夹下搜索_d.lib文件(_d代表debug版本),应该会得到7个结果,将这些文件复制到一个单独的文件夹下,并把它们的名字中的_d去掉,例如将zlib_d.lib重命名为zlib.lib。将重命名后的文件拷贝至VS2010安装目录下的lib文件夹下,在我的电脑上是D:\Program Files\Microsoft Visual Studio 10.0\VC\lib\。
B. 在解压得到的支持库的文件夹下搜索include,应该得到5个文件夹,将这些文件夹复制到D:\Program Files\Microsoft Visual Studio 10.0\VC\下,选择合并文件夹(也就是将include文件夹下的内容全部复制到D:\Program Files\Microsoft Visual Studio 10.0\VC\include\目录下)
C. 将D:\DCMTK\dcmtk-3.6.0-win32-i386-support_MT\openssl-1.0.0c\bin下的三个文件复制到D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\下。
2. CMAKE编译
A. 打开安装好的CMAKE。关闭所有跟VS有关的程序。在where is the source code里,选择你的dcmtk源代码的位置,我的源代码位置是D:\DCMTK\dcmtk-3.6.0。在where to build the binaries下选择你想存放build结果的文件夹,我新建了一个D:\DCMTK\dcmtk-bin 的文件夹。
B. 点击Configure,选择编译环境。我的电脑上装的VS2010,因此我选择的Visual Studio2010。点击finish。等待configure完成。这中间会出现***not found的信息,忽略它们。
C. 这时候CMAKE会列出所有的支持库的名字,勾选上openssl,png,tiff,xml和zlib,其他的保持默认。
D. 勾选上Advanced复选框,这是下面的内容变多了。将所有的/MD改成/MT,/MDd改成/MTd。CMAKE_INSTALL_PREFIX下会有安装路径,自选,不要选择带有中文的目录。
E. 再次点击Configure。这回Configure很快,之后点击Generate。
3. VS2010编译
这时在D:\DCMTK\dcmtk-bin下会多出来很多文件夹和文件。用VS2010打开其中的sln文件。在一个solution下会有很多个project。
A. 点击Build->Batch Build,选择ALL_BUILD的debug版,点击右边的Build。耐心等待。会有很多个warning,应该是由字符编码不统一引起的。最后会看到78个编译 成功,0个失败。
B. 之后,再选择Build->Batch Build,这次选择INSTALL的debug版本,点击右边的Build。最后会显示3个工程编译成功,这时在你选择的安装目录下(默认是C:\Program Files\DCMTK)就会有lib,bin,include,etc,share文件夹,里面就是之后写程序做医学图像处理所需要的库文件了!
4. 一个小例程,进行简单的测试
源代码:
#include <dcmtk\config\osconfig.h>
#include <dcmtk\dcmdata\dctk.h>
int main(void)
{
DcmFileFormat fileformat;
OFCondition oc = fileformat.loadFile("D:\\021A3C1C.dcm");
if(oc.good()){
OFString patientName;
if(fileformat.getDataset()->findAndGetOFString(DCM_PatientName, patientName).good())
{
std::cout<<"Patient Name:"<<patientName<<std::endl;
}
}
return 0;
}
A. 将021A3C1C.dcm文件放在D盘根目录下。
B. 新建一个empty win32 console application,在source文件夹下新建一个cpp文件,把以上源代码复制粘贴进去。
C. 右键单击工程名,选择属性(properties),在Configuration Properties->C/C++->General下,Additional Include Directories里加入上一步编译出来的include文件夹,我的电脑上是D:\Program Files\DCMTK\include,这一步是为了让程序能够找到头文件。
D. C/C++->code generation里,Runtime Library 选择/MTd,这一步是要和之前CMAKE的编译选项一致。
E. Linker->General里,Additional Library Directories里填写上一步编译出来的lib文件夹,我的电脑上是D:\Program Files\DCMTK\lib,这一步是为了让程序能够找到之前编译好的lib文件。
F. Linker->Input里,在Additional Dependencies 里依次加上wsock32.lib;netapi32.lib;ofstd.lib;oflog.lib;dcmdata.lib;zlib.lib;这一步是加入具体我们程序需要的lib文件。网上很多的帖子中,都没有提到oflog.lib这个文件,可能是由于旧的版本中并没有使用到这个文件。但是对于3.6.0版,这个lib文件是必需的。
G. Apply ,ok,编译工程,运行,命令行应该输出Patient Name:CHAI YI DONG。
Happy dcmtking!
DCMTK3.6.0 (MT支持库)安装 完整说明的更多相关文章
- DCMTK3.6.0(MD支持库)安装说明
一.运行环境:WIN7 32bit + VisualStudio2008 + dcmtk3.6.0 + Cmake2.8.8 或者 WIN7 64bit 二.准备工作: 1)MD/MT的知识储备: / ...
- DCMTK3.6.1(MD支持库)安装说明
转载:http://qimo601.iteye.com/blog/1685135 [前言] 最近,因为需要开发DICOM网管模块,必须使用DCMTK的DcmNet模块.但是DCMTK3.6.0在Dcm ...
- VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...
- Linux下安装PHP的GD支持库
Linux下安装PHP的GD支持库 1.安装 zlib wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/zlib-1.2.3.tar.gz ...
- linux中必备常用支持库的安装(CentOS)
在CentOS安装软件的时候,可能缺少一部分支持库,而报错.这里首先安装系统常用的支持库.那么在安装的时候就会减少很多的错误的出现 yum install -y gcc gdb strace gcc- ...
- centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版
zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...
- 用c++ 给易语言写支持库学习记录
废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...
- phpize 扩展GD库 安装 ! 环境--centos 7 +nginx 1.7.11+php 5.6.7
使用phpize编译GD库安装,先安装前置库libjpeg libpng zlib freetype等 都是下面php编译的几个选项 先看php编译的选项: --with-gd=DIR ...
- CentOS 6.0最小化编译安装Nginx+MySQL+PHP+Zend
http://www.osyunwei.com/archives/235.html 引言: 操作系统:CentOS 6.0 32位 下载地址:http://mirrors.163.co ...
随机推荐
- [Json.net]Linq to Json
引言 上篇学习了json.net的基本知识,这篇学习linq to json. 上篇文章:[Json.net]快速入门 Linq to Json Linq to Json是用来快速操作json对象的, ...
- [设计模式] javascript 之 装饰者模式
装饰者模式说明 说明:通一个类来动态的对另一个类的功能对象进行前或后的修饰,给它辅加一些额外的功能; 这是对一个类对象功能的装饰,装饰的类跟被装饰的类,要求拥有相同的访问接口方法(功能),这在动态面向 ...
- 小菜鸟学 MQ(一)
第一步: 从http://activemq.apache.org/ 下载相关文件. apache-activemq-5.8.0-bin.zip 解压到指定目录下. 第二步: cmd 下切换到 mq ...
- zabbix_监控_进程
一.根据进程名称监控 1.创建Item(只能通过进程名.用户过滤进程) http://www.2cto.com/os/201405/302249.html http://www.ithao1 ...
- 【CodeForces 312B】BUPT 2015 newbie practice #3A Archer
题 SmallR is an archer. SmallR is taking a match of archer with Zanoes. They try to shoot in the targ ...
- Fence 设备
RHCS中必须有Fence设备,在设备为知故障发生时,Fence负责让占有浮动资源的设备与集群断开. REDHAT的fence device有两种, 内部fence设备: IBM RSAII卡,HP的 ...
- JDBC中prepareStatement 和Statement 的区别
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta ...
- window自动切换ip的脚本
因为总要切换ip,所以百度了一下脚本 如下http://jingyan.baidu.com/article/d2b1d1029d21b95c7e37d4fa.html 动态ip netsh inter ...
- 一个完整的编译器前端-A.1 源语言
这个语言的一个程序由一个块组成,该块中包含可选的声明和语句.语法符号basic表示基本类型. program –> block block –> { decls stmts } dec ...
- Spring学习8- SSH需要的jar包
struts2 commons-logging-1.0.4.jar 主要用于日志处理 freemarker-2.3.8.jar 模板相关操作需要包 ognl-2.6.11.jar ognl表达示所需包 ...