DCMTK3.6.1(MD支持庫)安裝說明

 【前言】 linux

       最近,由於須要開發DICOM網管模塊,必須使用DCMTK的DcmNet模塊。可是DCMTK3.6.0在DcmNet模塊中只提供兩個實驗階段的網絡類DcmSCU和DcmSCP。並且他們並無徹底實現DICOM的C-Echo、C-Find、C-Get、C-Move和C-store操做。只實現了C-Echo和C-Find操做。windows

 

      調研了一番,發現DCMTK小組在最新的snapshot版本中(DCMTK3.6.1 2012-08-31),已經實現了DICOM所有操做。並且他們官方論壇中,開發人員在回答疑問時候,針對3.6.0中出現的bug等問題。他們也是鼓勵你們直接用最新的DCMTK3.6.1.api

固然他們也建議你們本身去經過底層代碼實現DcmScu的其餘的操做。不過對於咱們這種新手來說確實很困難,並且關鍵問題在後期的3.6.1版本的代碼變化很大。咱們本身手寫的,之後不方便兼容。服務器

 

       因此最終我仍是下載了最新的DCMTK3.6.1-20120831,可是他有一個問題,目前只支持在linux上編譯和運行。windows環境,他們並無提供支持庫。因而又讓我躊躇了一番,本身也手動試着基於3.6.0寫了點代碼,可是真的是超級難。最終下定決心在win7上編譯3.6.1,並利用DCMTK3.6.0的support(MD)Library。在DCMTK官方論壇開發人員的幫助下,最終編譯成功。也實現DcmScu的例子網絡訪問。網絡

 

【開發環境】app

操做系統:win7 32bitide

開發工具:VS2008 + Qt4.7.4工具

一、DCMTK: DCMTK3.6.120120831開發工具

二、DCMTK support libraries for windows: dcmtk-3.6.0-win32-i386-support_MD.zip測試

三、CMake:cmake-2.8.9-win32-x86.exe

 

目前個人Qt項目都是基於MD/MDd的運行時庫。

 

【安裝過程】

一、將支持庫中的相應lib文件,include文件,bin文件拷貝到VS2008安裝目錄的相應文件夾下。

        A.在解壓獲得的支持庫的文件夾下搜索_d.lib文件(xxx_d.lib爲DEBUG版本的支持庫,xxx_o.lib爲RELEASE版本支持庫),應該會獲得7個結果,將這些文件複製到一個單獨的文件夾下,並把它們的名字中的_d去掉,例如將zlib_d.lib重命名爲zlib.lib。將重命名後的文件拷貝至VS2008安裝目錄下的lib文件夾下,在個人win7 32bit電腦上是C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\
 
B. 在解壓獲得的支持庫的文件夾下搜索include,應該獲得5個文件夾,將這些文件夾複製到C:\Program Files\Microsoft Visual Studio 9.0\VC\下,選擇合併文件夾,也就是將include文件夾下的內容所有複製到C:\Program Files\Microsoft Visual Studio 9.0\VC\include\目錄下。
 
C.將D:\DCMTK\dcmtk-3.6.0-win32-i386-support_MD\openssl-1.0.0c\bin下的五個文件複製到C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\下。

 

 

 

二、CMake編譯

         A、設置source code 路徑:    D:\DCMTK\dcmtk-3.6.1_20120831

 B、設置binaries路徑:          D:\DCMTK\DCMTK-bin

 C、選擇Configure:visual studio 9 2008

         D、等待configure完畢後,會有不少find和not find,無所謂。

         E、選中Advanced單選框,而後在紅色區域設置:

             set DCMTK_OVERWRITE_WIN32_COMPILER_FLAG = OFF;(不選中,這樣可使生成項目運行時庫都是MD/MDd,而不是默認的MT/MTd)

     set "DCMTK_WITH_ICONV" to "ON" (選中)

     set "DCMTK_WITH_OPENSSL" to "ON"(選中)

     set "DCMTK_WITH_PNG" to "ON" (選中)

             set "DCMTK_WITH_TIFF" to "ON" (選中)          

             set "DCMTK_WITH_XML" to "ON" (選中)

             set "DCMTK_WITH_ZLIB" to "ON" (選中)

 F、點擊Generate,很快就完成。這時候VS項目源碼已經生成。

 

三、VS2008編譯項目源碼

 


        A、用VS打開 D:\DCMTK\DCMTK-bin\DCMTK.sln

        B、點擊Build->Batch Build,選擇ALL_BUILD項目的debug版,點擊右邊的Build。耐心等待。會有不少個warning,應該是由字符編碼不統一引發的。最後會看到82個編譯 成功,0個失敗。

       C、再選擇Build->Batch Build,此次選擇INSTALL項目的debug版本,點擊右邊的Build。最後會顯示1個工程編譯成功,這時在你選擇的安裝目錄下(默認是C:\Program Files\DCMTK)就會有lib,bin,include,etc,share文件夾,裏面就是以後寫程序作醫學圖像處理所須要的庫文件了

 

四、代碼測試

 

 

A. 新建一個Qt application,把以上源代碼複製粘貼進main.cpp去。 B. 右鍵單擊工程名,選擇屬性(properties),在Configuration Properties->C/C++->General下,
Additional Include Directories里加入上一步編譯出來的include文件夾,個人Win7 32bit電腦上是
C:\Program Files\DCMTK\include, 這一步是爲了讓程序可以找到頭文件。
C. C/C++->code generation裏,Runtime Library 選擇/MDd,這一步是要和以前CMAKE的編譯選項一致。
(個人Qt項目默認就是/MDd) D. Linker->General裏,Additional Library Directories裏填寫上一步編譯出來的lib文件夾,個人Win7 32bit
電腦上是C:\Program Files\DCMTK\lib,這一步是爲了讓程序可以找到以前編譯好的lib文件。
E. Linker->Input裏,在Additional Dependencies 裏依次加上
wsock32.lib netapi32.lib ofstd.lib oflog.lib dcmdata.lib dcmnet.lib zlib.lib
這一步是加入具體咱們程序須要的lib文件。

 

F. Debug,ok,編譯工程,運行成功。訪問了www.dicomserver.co.uk的DICOM服務器。

源代碼以下:

 

本文來源:http://qimo601.iteye.com/blog/1685135

相關文章
相關標籤/搜索