环境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支持库)安装 完整说明的更多相关文章

  1. DCMTK3.6.0(MD支持库)安装说明

    一.运行环境:WIN7 32bit + VisualStudio2008 + dcmtk3.6.0 + Cmake2.8.8 或者 WIN7 64bit 二.准备工作: 1)MD/MT的知识储备: / ...

  2. DCMTK3.6.1(MD支持库)安装说明

    转载:http://qimo601.iteye.com/blog/1685135 [前言] 最近,因为需要开发DICOM网管模块,必须使用DCMTK的DcmNet模块.但是DCMTK3.6.0在Dcm ...

  3. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  4. Linux下安装PHP的GD支持库

    Linux下安装PHP的GD支持库   1.安装 zlib  wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/zlib-1.2.3.tar.gz ...

  5. linux中必备常用支持库的安装(CentOS)

    在CentOS安装软件的时候,可能缺少一部分支持库,而报错.这里首先安装系统常用的支持库.那么在安装的时候就会减少很多的错误的出现 yum install -y gcc gdb strace gcc- ...

  6. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

  7. 用c++ 给易语言写支持库学习记录

    废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...

  8. phpize 扩展GD库 安装 ! 环境--centos 7 +nginx 1.7.11+php 5.6.7

    使用phpize编译GD库安装,先安装前置库libjpeg libpng zlib  freetype等 都是下面php编译的几个选项 先看php编译的选项: --with-gd=DIR       ...

  9. CentOS 6.0最小化编译安装Nginx+MySQL+PHP+Zend

    http://www.osyunwei.com/archives/235.html 引言: 操作系统:CentOS 6.0 32位         下载地址:http://mirrors.163.co ...

随机推荐

  1. 解决HTML5布局,兼容IE问题

    当我们使用h5的新标签,header,footer,aside,section,article...时,会遇到低版本IE不兼容问题,如下图: 解决方案:引入如下JS代码,即可 (这里我就直接放源码了, ...

  2. 配置个舒心的 Java 开发环境

    Redmonk发布Java框架流行度调研结果:http://www.infoq.com/cn/news/2016/09/redmonk-java-frameworks 尝试:Intellij IDEA ...

  3. ASP.NET Web API实现POST报文的构造与推送

    毕设和OAuth协议相关,而要理解OAuth协议就必须理解HTTP GET/POST方法.因此研究了一下如何使用Web API或MVC构造POST报文并实现客户端与服务器端的交互. 我使用的工具是Vi ...

  4. windows Server2008R2 每隔一段时间自动关机解决办法

    情况描述: “我的电脑-->右键属性”中显示“已激活”,而“管理工具”中显示未激活.系统中有进程wlms.exe. 网上找了下解决方式: 1.提权工具:PSTOOLS(下载地址:http://m ...

  5. linux更改文件所有者命令chown命令的使用困惑

    [berry@berry:practice] ls -lrt total -rwxrwxrwx berry berry Dec : f1.txt -rwxrwxrwx berry berry Dec ...

  6. 用php生成数据字典

    <?php header("Content-type: text/html; charset=utf-8"); $dbserver = "localhost&quo ...

  7. 【bzoj3246】 Ioi2013—Dreaming

    www.lydsy.com/JudgeOnline/problem.php?id=3246 (题目链接) 题意 给出一棵不完全的树,要求在树上连最少的边使得所有点联通,并且使得两点间最大距离最小. S ...

  8. Vijos1459 车展 (treap)

    描述 遥控车是在是太漂亮了,韵韵的好朋友都想来参观,所以游乐园决定举办m次车展.车库里共有n辆车,从左到右依次编号为1,2,…,n,每辆车都有一个展台.刚开始每个展台都有一个唯一的高度h[i].主管已 ...

  9. jsp中 response和request区别

    1.response 属于重定向请求: 其地址栏的URL会改变: 会向服务器发送两次请求: 2. request 属于请求转发: 其地址栏的URL不会改变: 向服务器发送一次请求: 举一个区分它们的简 ...

  10. java连接mysql(一)

    import java.sql.*; public class MysqlTest { public static void main(String[] args) throws SQLExcepti ...