logo资料库

DCMTK入门指南-编译说明.docx

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
DCMTK3.6.0 入门指南 By 郭俞伯 usher2007@foxmail.com  环境 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 #include 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:"<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!
分享到:
收藏