您的位置:首页 > 其它

VS2008编译DCMTK3.5.4过程详解(2)

2011-06-02 17:04 218 查看
上一篇我们生成了VS2008工程,本文将详细介绍编译过程及编译中遇到的问题的解决方法。

编译:

打开生成的VS2008工程,也就是在文件夹D:/DCMTK/dcmtk-3.5.4(你的可能不在这)下。

网上介绍了很多编译的方式,包括最常见的就是批生成,但是我感觉这个对解决问题不利,主要原因是你如果编译,会有上百个错误。而且你很难对错误进行定位。

我的做法如下:

64个工程,除了第一个ALLBuild之外,依次生成。期间出现最多的错误。现在一一解决如下:

第一个错误:

LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _free already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit already defined in msvcrtd.lib(MSVCRTD.dll)

解决方法如下:在当前编译工程中,属性----配置属性----链接器----命令行-----附加选项中添加如下命令:/clr /FORCE.解决方法来源是:http://msdn.microsoft.com/en-us/library/70abkas3.aspx


第二个错误:

错误从cl.exe返回,找到cl.exe运行会发现提示一下错误:mspdb80.dll未找到。这是因为VC/Bin/下没有“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件。

两种解决方法如下:

(1)直接从Common7/IDE/下复制这四个文件到VC/Bin/下即可解决。
(2)添加系统变量(Path),XP下这样操作:我的电脑->属性->高级->环境变量->系统变量,在path中添加C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;,注意结尾最后用“;”隔开。

下一篇中我将介绍在MFC中使用DCMTK。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: