visual studio 2013 编译DCMTK3.6.3
之前編譯過DCMTK的3.6.0版本,現在再次打開不知為什么編譯不過了,應該是不小心刪掉了文件或者移動了目錄。決定再編譯一個最新版本。
在我公司的辦公電腦上按照上面的步驟生成工程文件時,總是在configure過程中藍屏,每次都是這樣,使用虛擬機也是這樣,但是在我自己的筆記本電腦上就可以非常順利地完成,不知道是不是電腦硬件的問題。筆記本電腦未win10 64bit系統。
在https://www.dcmtk.org/dcmtk.php.en下載最新的源碼包dcmtk-3.6.3.zip;同時下載支持庫文件dcmtk-3.6.3-win64-support_MD-msvc-12.0.zip和dcmtk-3.6.3-win64-support_MT-msvc-12.0.zip.
下載最新的CMakes,我這是使用的是3.11.0版本。
由于CMakes生成的工程文件所有的文件目錄都是絕對路徑,工程較多手動修改起來比較繁瑣且易出錯,不修改的話以后移動目錄或者拷貝到其他機器又得重新生成工程文件,此處使用磁盤映射的方式把代碼映射到一個虛擬磁盤下,這樣可以規避這個問題。
?
新建文件DCMTK/3.6.3,將源碼和支持庫文件解壓到該目錄,新建子文件夾SLN-MD-64bit,將MD支持庫文件dcmtk-3.6.3-win64-support_MD-msvc-12.0.zip解壓到該文件夾,在3.6.3文件夾中新建.bat文件,輸入內容subst Y: %cd%,這樣就可以將3.6.3文件夾映射到虛擬磁盤Y盤中,以后不論將3.6.3文件夾移動/拷貝到哪里,只要執行一下這個bat文件就可以到Y盤去編譯,也可以將這個腳本放到開機啟動里,這樣每次開機都會自動映射。
將CMakes解壓到C盤根目錄。注意:以后拷貝、移動代碼到其他機器的時候需要將該文件夾一并移動到目標機器的C盤根目錄,以后VS編譯都需要該文件夾。
接下來開始生成工程文件并且編譯
打開cmakes-gui.exe,源碼目錄選擇Y:/dcmtk-3.6.3;where to bulid the binaries選擇Y:/SLN-openssl-MD-64bit;
點擊“Configure",選擇visual studio 2013 64bit, 配置完成后會列出所有的選項,紅色表示沒有通過的;
默認勾選的不需要修改,手動勾選DCMTK_WITH_ICONV,DCMTK_WITH_PNG,DCMTK_WITH_TIFF,DCMTK_WITH_XML,DCMTK_WITH_ZLIB;并設置這幾個支持庫的路徑(dcmtk-3.6.3-win64-support_MD-msvc-12.0.zip解壓后的文件),如WHIT_LIBICONVINC設置為Y:/SLN-openssl-MD-64bit/dcmtk-3.6.3-win64-support_MD-msvc-12.0/libiconv-1.15。
再次點擊Configure;
修改DCMTK_ENABLE_CHARSET_CONVERSION項為libiconv,默認為ICU(International Component for Unicode)是IBM發布的開源開發包,但是不同的機器可能包含的這個包版本不同,或者有的機器不包含,為了生成的工程文件可移植,最好將這個改為libiconv,這樣就不依賴與目標編譯機器。
點擊Generate,就會生成所有的工程文件和.sln文件;
這樣生成的所有工程中Runtime Library項都是MT,由于支持庫使用的是MD的,所以需要手動將所有工程的這個配置都修改一下,可以使用UE等編輯工具將所有的工程文件都打開,使用文本替換的方式將所有的工程一次替換掉,將所有的<RuntimeLibrary>MultiThreaded</RuntimeLibrary>替換成<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>,將所有的<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>替換成<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>,這樣所有工程的Release版的/MT都改成了/MD,Debug版的/MTd改成了/MDd。
接下來打開DCMTK.sln文件,編譯就可以了。
?以上是/MD 64bit的編譯,/MD 32bit的編譯完全一樣,只是在第一次configure時選擇32bit的visual studio即可。
對于/MT類型的編譯就省略了手動修改運行時庫類型的步驟,直接生成后編譯即可。
不知道什么原因,有時候CMake生成的工程文件中會有些錯誤,比如我遇到過將所有的支持庫文件后綴名寫了兩遍,如PNG.lib.lib;還有時候生成的工程加載失敗,編輯工具打開發現有些字段有明顯的錯誤。這些小問題一般都是偶發的,如果不是太多或者比較容易修改的可以手動修改,不方便手動修改的可以使用CMakes安裝上面的步驟再重新來一遍或許就好了。
這次編譯都沒有包含對OpenSSL的支持,使用官方支持庫文件夾中的Openssl庫編譯會有鏈接錯誤,等有空了研究怎么將它加上。
轉載于:https://www.cnblogs.com/JorSean/p/8876053.html
總結
以上是生活随笔為你收集整理的visual studio 2013 编译DCMTK3.6.3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java读取写入文件
- 下一篇: sql中的exsits和not exsi