0%

建置DCMTK

DCMTK 3.6.0發布囉:
http://dicom.offis.de/dcmtk

上一次建置DCMTK時,還是3.5.3版加上VC2005,現在3.6.0版已經發布,且VC也已經發行到2012年版了。鑒於上一次建置已經有一段時間了,再加上當時僅建置DCMTK函式庫本身,並沒將外部函式庫一併建置,所以這次建置就順便來做個紀錄吧。

1. 首先,當然就是要從DCMTK的官網下載函式庫的原始碼來囉,這次選擇的是3.6.0版本:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/dcmtk-3.6.0.zip

2. 因為還要加入外部函式庫,所以相關的檔案也要下載下來:
ZLIB:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/zlib-1.2.5.tar.gz
LIBTIFF:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/tiff-3.9.4.tar.gz
LIBPNG:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/libpng-1.4.3.tar.gz
LIBXML2:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/libxml2-2.7.7.tar.gz
LIBICONV:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/libiconv-1.13.1.tar.gz
OpenSSL:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/openssl-1.0.0c.tar.gz

3. 因為上面這幾個函式庫還需要自己另外建置,但可能是我用的建置環境比較新,一直建置不成功,所以就直接下載官網上已經預先編譯好的函式庫來使用囉:
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/dcmtk-3.6.0-win32-i386-support_MT.zip

ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk360/support/dcmtk-3.6.0-win32-i386-support_MD.zip

這裡有兩種版本:多執行緒靜態連結(/MT)以及多執行緒動態連結(/MD),視程式要使用函式庫的方法選擇適當的檔案囉。(DCMTK 3.6.0預設是建置為/MT)

4. 因為在Windows下建置DCMTK需要使用到CMake,所以要到CMake官網下載來使用:
http://www.cmake.org/files/v2.8/cmake-2.8.9-win32-x86.exe (安裝程式)

http://www.cmake.org/files/v2.8/cmake-2.8.9-win32-x86.zip (免安裝)

5. 接下來就要開始建置了,首先將DCMTK原始碼解壓縮到建置資料夾:
例如:E:\Project\Code\DCMTK\

6. 再來將預先編譯好的函式庫解壓縮到建置資料夾,並將會使用到的各外部支援函式庫資料夾內的bin、include、lib都移動到同一位置,如下圖:


7. 因為DCMTK預設的連結方式為多執行緒靜態連結(/MT, /MTd),而這裡要建置的程式將使用動態連結(/MD, /MDd),故需要先對dcmtk文件做修改。

8. 使用文字編輯器開啟dcmtk-3.6.0\CMakeList.txt,將所有的/MT修改成/MD,/MTd修改成/MDd。

9. 開啟CMake,於”Where is the source code”選擇dcmtk-3.6.0.zip解壓縮後的位置;於”Where to build the binaries”選擇建置用專案的存放位置。

10. 點選[Configure]進行設定
首先選擇要使用的建置專案環境,若使用DCMTK官網的外部支援函式庫預先建置檔案,必須選擇Visual Studio 2010(即Visual Studio 10)


按下[Finish],CMake即開始初始設定。

注意:DCMTK官網上放的預先編譯函式庫是以Visual Studio 2010 (VC10)建置的,若拿來用與Visual Studio 2012 (VC11)編譯,會產生”映像有安全例外處理常式(/SAFESEH)”的錯誤,故須自行以VC11重新編譯外部函式庫才行。而因為以VC11編譯這些函式庫的步驟過於複雜,且目前仍有部分函式庫無法編譯成功,故目前還是先使用官方的預先編譯函式庫。使用Visual Studio 2012仍然可以編譯VC10的程式,只要電腦中有安裝Visual Studio 2010,並且在專案屬性的[一般][平台工具組]選擇”Visual Studio 2010 (v100)”即可。

11. 經過一段時間後,會出現:


首先於”CMAKE_INSTALL_PREFIX”設定建置完的函式庫存放路徑;若要使用外部支援函式庫,必須將”DCMTK_WITH_XXX”勾選,並且於下方的”WITH_XXXINC”設定函式庫檔案所在路徑。

設定完成如下畫面:


12. 再按下[Configure],若設定都正確紅色區塊將消失:


13. 按下[Generate]產生建置用的專案檔。


至此,前置作業完成,接下來要開始於Visual Studio建置DCMTK了。

14. 關閉CMake,到”Where to build the binaries”路徑以Visual Studio開啟DCMTK.sln方案檔。

15. 開始建置前,需要先設定建置環境。於方案總管選取所有專案,右鍵選擇[屬性]


 16. 選擇[所有組態],點選[VC++目錄]:


17. 於[可執行檔目錄]點選編輯,加入由dcmtk-3.6.0-win32-i386-support_MD.zip解壓縮後的”bin”路徑:


18. 於[Include目錄]點選編輯,加入由dcmtk-3.6.0-win32-i386-support_MD.zip解壓縮後的”include”路徑:


19. 於[程式庫目錄]點選編輯,加入由dcmtk-3.6.0-win32-i386-support_MD.zip解壓縮後的”lib”路徑:


回屬性頁後點選[套用],確認設定儲存後關閉屬性頁。接著就要開始正式建置DCMTK了。

20. 選擇並建置”ALL_BUILD”專案:


21. 經過一段時間的建置後,若設定都正確,就會顯示78個專案建置完成的訊息:


22. “ALL_BUILD”專案建置完成後,再對”INSTALL”專案建置。

23. 最後,在建置輸出資料夾中就可以找到函式庫檔案以及範例執行檔。

24. 接下來,就可以利用建置完成的函式庫來寫DICOM程式了。