现在的位置: 首页 > 综合 > 正文

VS2008配置DCMTK静态链接库

2012年10月18日 ⁄ 综合 ⁄ 共 3378字 ⁄ 字号 评论关闭

转载请注明出处!

安装环境:

WIN7 + VS2008 + dcmtk-3.6.0 + cmake-2.8.11.2

安装步骤:

1. 下载dcmtk-3.6.0.zip , dcmtk-3.6.0-win32-i386-support_MT.zip 及 cmake-2.8.11.2-win32-x86.exe备用。

2. 直接安装cmake;

3. 创建新文件夹DCMTK为根目录,将dcmtk-3.6.0.zip解压到根目录,dcmtk-3.6.0-win32-i386-support_MT.zip 解压到根目录;

4. 在根目录下创建project文件夹(存放工程文件),bin文件夹(存放最后生成的可执行文件),lib文件夹(存放最后生成的静态lib);

5. 在dcmtk-3.6.0-win32-i386-support_MT文件夹下搜索include,将所有的include复制到Program Files/Microsoft Visual Studio 8/VC/include,相同的文件直接替换;

6.  在dcmtk-3.6.0-win32-i386-support_MT文件夹下,同样搜索*_d.lib文件,将其添加到Program
Files/Microsoft Visual Studio 8/VC/lib文件夹中,文件名中去掉_d(若编译release版本,则搜索*_o.lib文件,复制到Program Files/Microsoft Visual Studio 8/VC/lib文件夹,再去除_o);

7.dcmtk-3.6.0-win32-i386-support_MT文件夹下,最后接着搜索bin ,将搜索结果放到Program
Files/Microsoft Visual Studio 8/VC/bin;

8. 上述过程将DCMTK的支持库文件的debug版本转换VS
2008
的内在库。

    9.打开安装好的CMAKE。关闭所有跟VS有关的程序。在where is the source code里,选择你的dcmtk源代码的位置,我的源代码位置是DCMTK\dcmtk-3.6.0。在where
to build the binaries下选择你想存放build结果的文件夹,我新建的DCMTK\project的文件夹;

    10.点击Configure,选择编译环境。我的电脑上装的VS2008,因此我选择的Visual Studio2008。点击finish。等待configure完成。这中间会出现***not
found的信息,忽略它们。

    11.这时候CMAKE会列出所有的支持库的名字,勾选上openssl,png,tiff,xml和zlib,其他的保持默认。 

    12.勾选上Advanced复选框,将所有的/MD改成/MT,/MDd改成/MTd,并且找到EXECUTABLE_OUTPUT_PATH 和 LIBRARY_OUTPUT_PATH分别设为DCMTK/binDCMTK/lib,这样最后编译出来的.lib文件和exe文件就在这两个文件夹中;

    13.再次点击Configure。这回Configure很快,之后点击Generate;

   14.上述过程为cmake编译;

    15.进入DCMTK\project中,打开sln工程,在打开的项目中,从主选单中选 "生成"
- "
批生成",在弹出的对话盒中选 "ALL_BUILD"的DEBUG方案,选择生成;

        16. 编译 INSTALL:主选单中选 "生成"
- "
批生成",在弹出的对话盒中勾选 "
INSTALL " 
DEBUG方案,并按下 "生成";

        17. 将DCMTK\dcmtk-3.6.0中的include文件复制到Program
Files/Microsoft Visual Studio 8/VC/include;将根目录下的DCMTK\bin\include\dcmtk\config下的osconfig.h文件最后copy到Program Files\Microsoft Visual Studio 9.0\VC\include\dcmtk\config下,大小为27K左右。

 
      18. 将根目录下的lib文件中的lib文件放到Program Files/Microsoft Visual Studio 8/VC/lib;

 
      19. 如果要改为release版本,则需要将DCMTK的支持库、库文件的.lib文件更换掉。

测试实例:

        1.网上下载dcm文件,http://www.barre.nom.fr/medical/samples/index.html

        2.vs2008创建 win32 console application;

        3. C/C++->code generation里,Runtime Library选择/MTd,这一步是要和之前CMAKE的编译选项一致;

        4.code:

// DCMTK test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <dcmtk\config\osconfig.h>
#include <dcmtk\dcmdata\dctk.h>
#pragma comment(lib,"dcmdata")
#pragma comment(lib,"oflog")
#pragma comment(lib,"ofstd")
#pragma comment(lib,"dcmtls")
#pragma comment(lib,"dcmnet")
#pragma comment(lib,"dcmqrdb")
#pragma comment(lib,"dcmimgle")
#pragma comment(lib,"dcmimage")
#pragma comment(lib,"dcmjpeg")
#pragma comment(lib,"ijg8")
#pragma comment(lib,"ijg12")
#pragma comment(lib,"ijg16")
#pragma comment(lib,"dcmdsig")
#pragma comment(lib,"dcmsr")
#pragma comment(lib,"dcmpstat")
#pragma comment(lib,"dcmwlm")
#pragma comment(lib,"netapi32")
#pragma comment(lib,"wsock32")
using namespace std;
int _tmain(int argc, _TCHAR* ARGV[])
{
DcmFileFormat fileformat;
OFCondition status = 
fileformat.loadFile("C:\\CT-MONO2-8-abdo");
if(status.good())
{
OFString patientsName;
if(fileformat.getDataset()->findAndGetOFString(DCM_PatientName,patientsName).good())
{
cout<< "Patient's Name:" << patientsName <<endl;
}
}
system("Pause");
return 0;
}        

参考:

DCMTK install addr:
http://wenku.baidu.com/view/9907d70716fc700abb68fc46
http://2845385.blog.51cto.com/2835385/1178160
http://blog.csdn.net/husthlj/article/details/5960858
http://blog.csdn.net/zssureqh/article/details/8784980

iostream issum:
http://hi.baidu.com/summy00/item/e94ece36d9509bf6a9842844
http://blog.csdn.net/cust_hf/article/details/1905450

Medical image:
http://www.barre.nom.fr/medical/samples/index.html


抱歉!评论已关闭.