我从 dcmtk 官方网站上下载了以下rar文件 :
dcmtk-3.5.4
dcmtk-3.5.4-win32-i386
dcmtk-3.5.4-win32-i386-md-support
dcmtk-3.5.4-win32-i386-tls
依次按照以下步骤操作:
第一步:将dcmtk-3.5.4 解压缩为:J:/DCMTK-3.5.4/ DCMTK-3.5.4
第二步:将 dcmtk-3.5.4-win32-i386 下的文件夹 :
拷贝到:J:/DCMTK-3.5.4/ 下
第三步:将dcmtk-3.5.4-win32-i386-md-support下的文件夹 :
拷贝到:J:/DCMTK-3.5.4/ 下
第四步:将dcmtk-3.5.4-win32-i386-md-support下的文件夹 :
拷贝到:J:/DCMTK-3.5.4/ 下
第五步:根据:dcmtk-3.5.4-win32-i386-md-support 中的提示:
/ OFFIS_README.txt ///
To use DCMTK with the /MD flag, you need the support libraries to be built with that flag as well.
Each folder contains a README with instructions (except libxml and openssl, which I did not rebuild).
Additionally, the jpeg_6 project needs to be rebuilt as follows:
- rename jconfig.vc to jconfig.h
- edit makefile.vc to add "-MD" to the CFLAGS
- run "nmake /f makefile.vc"
- rename "jpeg.lib" to "libjpeg.lib"
To build the DCMTK project:
- Edit CMakeLists.txt: Find "# settings for MS Visual C++", and subsection "Visual Studio 8 2005"; change "/MT" to "/MD" and "/MTd" to "/MDd"
- Update the folder paths for the support libraries
- Follow instructions for building for DevStudio
- Note that the ijg* projects don't pick up the /MD change - need to change them manually.
- Build the INSTALL project
Best of luck
Dennis Balance
将 CMakeLists.txt 中相关的部分改为如下内容:
# settings for Microsoft Visual C
IF(CMAKE_C_COMPILER MATCHES cl)
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
SET(CMAKE_C_FLAGS "/nologo /W3 /GX /Gy /YX")
SET(CMAKE_C_FLAGS_DEBUG "/MDd /Z7 /Od")
SET(CMAKE_C_FLAGS_RELEASE "/MD /O2")
SET(CMAKE_C_FLAGS_MINSIZEREL "/MD /O2")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/MDd /Z7 /Od")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 7" OR CMAKE_GENERATOR STREQUAL "Visual Studio 7 .NET 2003")
SET(CMAKE_C_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_C_FLAGS_DEBUG "/MDd /Z7 /Od")
SET(CMAKE_C_FLAGS_RELEASE "/MD /O2")
SET(CMAKE_C_FLAGS_MINSIZEREL "/MD /O2")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/MDd /Z7 /Od")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 7" OR CMAKE_GENERATOR STREQUAL "Visual Studio 7 .NET 2003")
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
SET(CMAKE_C_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_C_FLAGS_DEBUG "/MDd /Z7 /Od")
SET(CMAKE_C_FLAGS_RELEASE "/MD /O2")
SET(CMAKE_C_FLAGS_MINSIZEREL "/MD /O2")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/MDd /Z7 /Od")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
ENDIF(NOT WITH_SHARED_LIBS)
ENDIF(CMAKE_C_COMPILER MATCHES cl)
# settings for Microsoft Visual C++
IF(CMAKE_CXX_COMPILER MATCHES cl)
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /GX /Gy /YX")
SET(CMAKE_CXX_FLAGS_DEBUG "/MDd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MD /O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MD /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MDd /Z7 /Od")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 7" OR CMAKE_GENERATOR STREQUAL "Visual Studio 7 .NET 2003")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_CXX_FLAGS_DEBUG "/MDd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MD /O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MD /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MDd /Z7 /Od")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 7" OR CMAKE_GENERATOR STREQUAL "Visual Studio 7 .NET 2003")
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_CXX_FLAGS_DEBUG "/MDd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MD /O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MD /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MDd /Z7 /Od")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
ENDIF(NOT WITH_SHARED_LIBS)
ENDIF(CMAKE_CXX_COMPILER MATCHES cl)
第六步:使用Cmake 2.6 :如下图:
图 1
点击 “Configure” 按钮:
出现如下对话框: 选择 :Visual Studio 8 2005 点击 “OK”按钮
图 2
各参数如下:
图3
图 4
其中修改的参数如下 :
INSTALL_PREFIX
set:” J:/dcmtk-3.5.4”
libpng support:
set "WITH_LIBPNG" to "ON" and
set "WITH_LIBPNGINC" e.g. to " J:/dcmtk-3.5.4/libpng-1.2.8 "
libtiff support:
set "WITH_LIBTIFF" to "ON" and
set "WITH_LIBTIFFINC" e.g. to " J:/dcmtk-3.5.4/tiff-3.8.2 "
OpenSSL support:
set "WITH_OPENSSL" to "ON" and
set "WITH_OPENSSLINC" e.g. to " J:/dcmtk-3.5.4/openssl-0.9.8a "
zlib support:
set "WITH_ZLIB" to "ON" and
set "WITH_ZLIBINC" e.g. to " J:/dcmtk-3.5.4/zlib-1.2.3 "
点击 “Configure” 按钮:
图 5
点击“OK”按钮出现如下警告:
图 6
第七步:使用VC 2005 打开 dcmtk. :如下图:
图 7
设置 All_Buder 为启动项:
图 8
编译该工程;
系统出现 错误:
错误 6 error LNK2005: __decode_pointer 已经在 MSVCRTD.lib(MSVCR80D.dll) 中定义 LIBCMTD.lib
请问我以上的操作步骤是否有什么地方遗漏或者 错误 ,该如何操作,
出现
“error LNK2005: __decode_pointer 已经在 MSVCRTD.lib(MSVCR80D.dll) 中定义 LIBCMTD.lib ”
这样的错误该如何解决?