日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt5.5.0环境下的mingw编译dcmtk 3.6.1_20150924

發布時間:2024/9/27 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt5.5.0环境下的mingw编译dcmtk 3.6.1_20150924 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上關于mingw編譯dcmtk的文章太少,不方便查閱,期間遇到各種問題。特意將整個編譯過程記錄下來。為了保證所有編譯出來的文件方便我在Qt5.5.0中使用,將所有的dcmtk依賴的外部庫下載下來并進行編譯。整個編譯過程如下。注,除msys外,其余所有依賴庫,均在此處下載:http://www.dcmtk.org/dcmtk.php.en,所有安裝包,依賴庫,均解壓到d盤下;


Msys

  • 版本:1.0.11
  • 下載地址:http://download.csdn.net/detail/syz9011/9246179?
    一路安裝下去即可

ZLIB

版本:1.2.5?
新建文件夾libzlib,并將zlib解壓后放置在libzlib文件夾中,同時,再在內部新建文件夾out,方便講編譯出來的文件提取安裝到out中。(即源碼路徑為:d:/libzlib/zlib-1.2.5。輸入文件路徑為d:/libzlib/out)?
在zlib文件夾中打開命令行,輸入:

copy win32\makefile.gcc makefile.gcc mingw32-make -f makefile.gcc

目前為止,暫未編譯通過,每次生成dll都會失敗,但因為不需要dll,只需要動態庫,故暫時未管。將zonf.h提取到out中的include文件夾中,將libz.a放到out中的lib文件夾中。?
編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9261495

LIBPNG

版本:1.4.3?
新建文件夾libpng,并將libpng-1.4.3解壓后放置在libpng文件夾中,同時,再在內部新建文件夾out,方便講編譯出來的文件提取安裝到out中.(即源碼路徑為:d:/libpng/libpng-1.4.3。輸入文件路徑為d:/libpng/out)?
打開scripts/makefile.gcc設置zlib路徑:

ZLIBINC = d:/libzlib/out ZLIBLIB = d:/libzlib/out

運行msys.bat,并cd到libpng-1.4.3路徑中,輸入如下:

./configure --prefix=d:/libpng/out make make install

編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9261475

LIBJPEG

因編譯LIBTIFF需要依賴于LIBJPG,故需要編譯此庫?
下載地址:http://www.ijg.org/files/jpegsr9a.zip?
路徑放置同上:?
即源碼路徑為:d:/libjpeg/jpeg-9a。輸入文件路徑為d:/libjpeg/out

運行msys.bat,并cd到jpeg-9a路徑中,輸入如下:

./configure --prefix=d:/libpng/out

打開jconfig.h,增加以下定義:

#define HAVE_PROTOTYPES 1

保存,然后繼續在msys.bat中輸入如下:

make make install

編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9247035

LIBTIFF

路徑放置同上:?
即源碼路徑為:d:/libtiff/tiff-3.9.4。輸入文件路徑為d:/libtiff/out?
運行msys.bat,并cd到tiff-3.9.4路徑中,輸入如下:

./configure --with-zlib-include-dir=d:/libzlib/out --with-zlib-lib-dir=d:/libzlib/out --with-jpeg-include-dir=d:/libjpeg/out/include --with-jpeg-lib-dir=d:/libjpeg/out/lib --prefix=d:/libtiff/out make make install

注意,編譯完成后,需要將libjpeg中的libjpeg.dll.a拷貝到libtiff的out的lib文件夾下,否則dcmtk編譯會出錯。?
編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9261485

LIBICONV

路徑放置同上:?
即源碼路徑為:d:/libiconv/libiconv-1.13.1。輸入文件路徑為d:/libiconv/out?
運行msys.bat,并cd到libiconv-1.13.1路徑中,輸入如下:

./configure --prefix=d:/libiconv/out make make install

編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9247017

openssl

路徑放置同上:?
即源碼路徑為:d:/libopenssl/openssl-1.0.0c。輸入文件路徑為d:/libopenssl/out

此時,進入到d:/libopenssl/openssl-1.0.0c/test文件夾下,打開md2test.c,將內容從 dummytest.c 改為 #include “dummytest.c”,同樣的還有rc5test.c以及jpaketest.c?
運行msys.bat,并cd到openssl-1.0.0c路徑中,輸入如下:

./config shared --prefix=d:/libopenssl/out make depend make make test make install

編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9261499

LIBXML

路徑放置同上:?
即源碼路徑為:d:/libxml/libxml2-2.7.7。輸入文件路徑為d:/libxml/out?
運行msys.bat,并cd到libxml2-2.7.7路徑中,輸入如下:

./configure --prefix=d:/libxml/out make make install
  • 1
  • 2
  • 3

注意,編譯完成之后,需要到out路徑下,打開include文件夾,并將libxml2文件夾內的libxml文件夾拷貝到include文件夾下面,否則之后編譯DCMTK時,會出現找不到libxml頭文件的情況。另外,將libiconv中編譯出來的.dll.a文件拷貝到libxml中的out中的lib文件夾下

ps:mingw4.8版本make過程中會報錯,undefined reference _imp__xmlfree。mingw4.9.2不會

編譯后的下載鏈接:http://download.csdn.net/detail/syz9011/9261491

DCMTK

路徑放置同上:?
即源碼路徑為:d:/dcmtk/dcmtk-3.6.1_20150924。輸入文件路徑為d:/dcmtk/out。編譯輸出路徑為d:/dcmtk/gcc.?
打開源碼路徑下CMake文件夾下的3rdparty.cmake,并做如下更改:

# libxml support: configure compilerIF(DCMTK_WITH_XML)IF(WITH_LIBXMLINC)SET(LIBXML_INCDIR ${WITH_LIBXMLINC}/include)SET(LIBXML_LIBDIR ${WITH_LIBXMLINC}/lib)IF(MINGW)SET(LIBXML_LIBS debug ${LIBXML_LIBDIR}/libxml2.a optimized ${LIBXML_LIBDIR}/libxml2.a debug ${LIBXML_LIBDIR}/libiconv.dll.a optimized ${LIBXML_LIBDIR}/libiconv.dll.a debug ${LIBXML_LIBDIR}/libxml2.dll.a optimized ${LIBXML_LIBDIR}/libxml2.dll.a debug ${LIBXML_LIBDIR}/libcharset.a optimized ${LIBXML_LIBDIR}/libcharset.a)ELSE(MINGW)SET(LIBXML_LIBS debug ${LIBXML_LIBDIR}/libxml2_d.lib optimized ${LIBXML_LIBDIR}/libxml2_o.lib debug ${LIBXML_LIBDIR}/iconv_d.lib optimized ${LIBXML_LIBDIR}/iconv_o.lib)MESSAGE(STATUS "Info: DCMTK XML support will be enabled")ENDIF(MINGW)SET(WITH_LIBXML 1)ELSE(WITH_LIBXMLINC) # turn off library if library path not setMESSAGE(STATUS "Warning: XML support will be disabled because libxml2 directory is not specified. Correct path and re-enable DCMTK_WITH_XML.")SET(DCMTK_WITH_XML OFF CACHE BOOL "" FORCE)SET(WITH_LIBXML "")ENDIF(WITH_LIBXMLINC)ENDIF(DCMTK_WITH_XML)# libpng support: configure compilerIF(DCMTK_WITH_PNG)IF(WITH_LIBPNGINC)SET(LIBPNG_INCDIR ${WITH_LIBPNGINC}/include)SET(LIBPNG_LIBDIR ${WITH_LIBPNGINC}/lib)IF(MINGW)SET(LIBPNG_LIBS debug ${LIBPNG_LIBDIR}/libpng.a optimized ${LIBPNG_LIBDIR}/libpng.a)ELSE(MINGW)SET(LIBPNG_LIBS debug ${LIBPNG_LIBDIR}/libpng_d.lib optimized ${LIBPNG_LIBDIR}/libpng_o.lib)ENDIF(MINGW)MESSAGE(STATUS "Info: DCMTK PNG support will be enabled")SET(WITH_LIBPNG 1)ELSE(WITH_LIBPNGINC) # turn off library if library path not setMESSAGE(STATUS "Warning: PNG support will be disabled because libpng directory was not specified. Correct path and re-enable DCMTK_WITH_PNG.")SET(DCMTK_WITH_PNG OFF CACHE BOOL "" FORCE)SET(WITH_LIBPNG "")ENDIF(WITH_LIBPNGINC)ENDIF(DCMTK_WITH_PNG)# libtiff support: configure compilerIF(DCMTK_WITH_TIFF)IF(WITH_LIBTIFFINC)SET(LIBTIFF_INCDIR ${WITH_LIBTIFFINC}/include)SET(LIBTIFF_LIBDIR ${WITH_LIBTIFFINC}/lib)IF(MINGW)SET(LIBTIFF_LIBS debug ${LIBTIFF_LIBDIR}/libtiff.a optimized ${LIBTIFF_LIBDIR}/libtiff.a debug ${LIBTIFF_LIBDIR}/libjpeg.a optimized ${LIBTIFF_LIBDIR}/libjpeg.a debug ${LIBTIFF_LIBDIR}/libjpeg.dll.a optimized ${LIBTIFF_LIBDIR}/libjpeg.dll.a)ELSE(MINGW)SET(LIBTIFF_LIBS debug ${LIBTIFF_LIBDIR}/libtiff_d.lib optimized ${LIBTIFF_LIBDIR}/libtiff_o.lib)ENDIF(MINGW)MESSAGE(STATUS "Info: DCMTK TIFF support will be enabled")SET(WITH_LIBTIFF 1)ELSE(WITH_LIBTIFFINC) # turn off library if library path not setMESSAGE(STATUS "Warning: TIFF support will be disabled because libtiff directory was not specified. Correct path and re-enable DCMTK_WITH_TIFF.")SET(DCMTK_WITH_TIFF OFF CACHE BOOL "" FORCE)SET(WITH_LIBTIFF "")ENDIF(WITH_LIBTIFFINC)ENDIF(DCMTK_WITH_TIFF)# OpenSSL support: configure compilerIF(DCMTK_WITH_OPENSSL)IF(WITH_OPENSSLINC)SET(OPENSSL_BINDIR ${WITH_OPENSSLINC}/bin)SET(OPENSSL_INCDIR ${WITH_OPENSSLINC}/include)SET(OPENSSL_LIBDIR ${WITH_OPENSSLINC}/lib)IF(MINGW)SET(OPENSSL_LIBS debug ${OPENSSL_LIBDIR}/libcrypto.dll.a optimized ${OPENSSL_LIBDIR}/libcrypto.dll.a debug ${OPENSSL_LIBDIR}/libssl.dll.a optimized ${OPENSSL_LIBDIR}/libssl.dll.a)ELSE(MINGW)SET(OPENSSL_LIBS debug ${OPENSSL_LIBDIR}/dcmtkssl_d.lib optimized ${OPENSSL_LIBDIR}/dcmtkssl_o.lib debug ${OPENSSL_LIBDIR}/dcmtkeay_d.lib optimized ${OPENSSL_LIBDIR}/dcmtkeay_o.lib)ENDIF(MINGW)MESSAGE(STATUS "Info: DCMTK OPENSSL support will be enabled")SET(WITH_OPENSSL 1)ELSE(WITH_OPENSSLINC) # turn off library if library path not setMESSAGE(STATUS "Warning: OPENSSL support will be disabled because openssl directory was not specified. Correct path and re-enable DCMTK_WITH_OPENSSL.")SET(DCMTK_WITH_OPENSSL OFF CACHE BOOL "" FORCE)SET(WITH_OPENSSL "")ENDIF(WITH_OPENSSLINC)ENDIF(DCMTK_WITH_OPENSSL)# zlib support: configure compilerIF(DCMTK_WITH_ZLIB)IF(WITH_ZLIBINC)SET(ZLIB_INCDIR ${WITH_ZLIBINC}/include)SET(ZLIB_LIBDIR ${WITH_ZLIBINC}/lib)IF(MINGW)SET(ZLIB_LIBS debug ${ZLIB_LIBDIR}/zlib.a optimized ${ZLIB_LIBDIR}/zlib.a)ELSE(MINGW)SET(ZLIB_LIBS debug ${ZLIB_LIBDIR}/zlib_d.lib optimized ${ZLIB_LIBDIR}/zlib_o.lib)ENDIF(MINGW)MESSAGE(STATUS "Info: DCMTK ZLIB support will be enabled")SET(WITH_ZLIB 1)ELSE(WITH_ZLIBINC) # turn off library if library path not setMESSAGE(STATUS "Warning: ZLIB support will be disabled because zlib directory was not specified. Correct path and re-enable DCMTK_WITH_ZLIB.")SET(DCMTK_WITH_ZLIB OFF CACHE BOOL "" FORCE)SET(WITH_ZLIB "")ENDIF(WITH_ZLIBINC)ENDIF(DCMTK_WITH_ZLIB)# sndfile support: configure compilerIF(DCMTK_WITH_SNDFILE)IF(WITH_SNDFILEINC)SET(SNDFILE_INCDIR ${WITH_SNDFILEINC}/include)SET(SNDFILE_LIBDIR ${WITH_SNDFILEINC}/lib)IF(MINGW)SET(SNDFILE_LIBS debug ${SNDFILE_LIBDIR}/libsndfile.a optimized ${SNDFILE_LIBDIR}/libsndfile.a)ELSE(MINGW)SET(SNDFILE_LIBS debug ${SNDFILE_LIBDIR}/libsndfile_d.lib optimized ${SNDFILE_LIBDIR}/libsndfile_o.lib)ENDIF(MINGW)MESSAGE(STATUS "Info: DCMTK SNDFILE support will be enabled")SET(WITH_SNDFILE 1)ELSE(WITH_SNDFILEINC) # turn off library if library path not setMESSAGE(STATUS "Warning: SNDFILE support will be disabled because libsndfile directory was not specified. Correct path and re-enable DCMTK_WITH_SNDFILE.")SET(DCMTK_WITH_SNDFILE OFF CACHE BOOL "" FORCE)SET(WITH_SNDFILE "")ENDIF(WITH_SNDFILEINC)ENDIF(DCMTK_WITH_SNDFILE)# libiconv support: configure compilerIF(DCMTK_WITH_ICONV)IF(WITH_LIBICONVINC)SET(LIBICONV_INCDIR ${WITH_LIBICONVINC}/include)SET(LIBICONV_LIBDIR ${WITH_LIBICONVINC}/lib)IF(MINGW)SET(LIBICONV_LIBS debug ${LIBICONV_LIBDIR}/libiconv.dll.a optimized ${LIBICONV_LIBDIR}/libiconv.dll.a debug ${LIBICONV_LIBDIR}/libcharset.a optimized ${LIBICONV_LIBDIR}/libcharset.dll.a)ELSE(MINGW)SET(LIBICONV_LIBS debug ${LIBICONV_LIBDIR}/libiconv.dll.a optimized ${LIBICONV_LIBDIR}/libiconv_o.lib)ENDIF(MINGW)MESSAGE(STATUS "Info: DCMTK ICONV support will be enabled")SET(WITH_LIBICONV 1)ELSE(WITH_LIBICONVINC) # turn off library if library path not setMESSAGE(STATUS "Warning: ICONV support will be disabled because libiconv directory was not specified. Correct path and re-enable DCMTK_WITH_ICONV.")SET(DCMTK_WITH_ICONV OFF CACHE BOOL "" FORCE)SET(WITH_LIBICONV "")ENDIF(WITH_LIBICONVINC)ENDIF(DCMTK_WITH_ICONV)ELSE(WIN32)

打開CMake工具,并設置好源代碼路徑以及編譯臨時路徑。點擊Configure,出現紅色界面,將所有路徑配置好之后,點擊Generate。界面截圖如下:(注意,因我的電腦只有C盤,所有,我所有的路徑都在c:/vs下)?

運行msys.bat,并cd到gcc路徑中,輸入如下:

make make install

csdn下載資源:?
編譯之后的包:http://download.csdn.net/detail/syz9011/9246233

參考資料:?
http://www.gaia-gis.it/gaia-sins/mingw_how_to.html

總結

以上是生活随笔為你收集整理的Qt5.5.0环境下的mingw编译dcmtk 3.6.1_20150924的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。