关于 VC 2005编译DCMTK的问题

我从 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

 

这样的错误该如何解决?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值