关于 VC 2005编译DCMTK的问题
2009-03-05 21:22
489 查看
我从 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 下的文件夹 :
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/1.JPG)
拷贝到:J:/DCMTK-3.5.4/ 下
第三步:将dcmtk-3.5.4-win32-i386-md-support下的文件夹 :
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/2.JPG)
拷贝到:J:/DCMTK-3.5.4/ 下
第四步:将dcmtk-3.5.4-win32-i386-md-support下的文件夹 :
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/3.JPG)
拷贝到: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 :如下图:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/4.JPG)
图 1
点击 “Configure” 按钮:
出现如下对话框: 选择 :Visual Studio 8 2005 点击 “OK”按钮
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/5.JPG)
图 2
各参数如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/6.JPG)
图3
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/7.JPG)
图 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” 按钮:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/8.JPG)
图 5
点击“OK”按钮出现如下警告:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/9.JPG)
图 6
第七步:使用VC 2005 打开 dcmtk. :如下图:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/10.JPG)
图 7
设置 All_Buder 为启动项:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/11.JPG)
图 8
编译该工程;
系统出现 错误:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/zjg820207/EntryImages/20090305/12.JPG)
错误 6 error LNK2005: __decode_pointer 已经在 MSVCRTD.lib(MSVCR80D.dll) 中定义 LIBCMTD.lib
请问我以上的操作步骤是否有什么地方遗漏或者 错误 ,该如何操作,
出现
“error LNK2005: __decode_pointer 已经在 MSVCRTD.lib(MSVCR80D.dll) 中定义 LIBCMTD.lib ”
这样的错误该如何解决?
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 ”
这样的错误该如何解决?
相关文章推荐
- 关于vc2005编译时的warning C4273 …… inconsistent dll linkage问题
- 关于C++(VC2005)编译多一条JMP指令的问题,待解决
- VC6中使用VC2005编译的DLL问题
- 关于VC命令行编译,待解决问题
- VS 2005 中关于编译时使用那种字符集问题
- 关于VC2005 断点无效的问题
- 关于vc2005编译asm文件出错的一个处理方法
- 关于x264 2011在VC2005及以上版本的编译
- 关于vc2005应用程序部署发行的若干问题
- vc2005编译过程中"没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题"? 的彻底解决
- 关于 vc编译程序 脱离 vc环境运行的问题 (新手)
- 关于VC总是重新编译的问题……
- 关于Vs 2005 中出现编译通过,但运行时出现“未使用调试信息生成二进制文件”的问题
- 关于VC2005 中的Character Set问题
- VC6中使用VC2005编译的DLL问题
- 关于vc++ 2005 发布程序的问题
- 关于VC2005 断点无效的问题
- VC2005编译的问题
- 关于Visual 2005中MFC调用Berkeley DB的编译错误问题
- VC2005下编译DirectX9.0的SDK问题