VS2008編譯DCMTK3 5 4過程詳解(2)

2021-05-25 16:23:19 字數 1024 閱讀 6147

開啟生成的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.解決方法**是:

錯誤從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;,注意結尾最後用「;」隔開。

VS2008編譯問題!

vs2005鏈結問題 lnk2005錯誤 error lnk2005 free 已經在 libcmtd.lib dbgheap.obj 中定義 以前經常遇到這個警告資訊,因為執行並沒有什麼問題,所以也沒深究。但是耿耿於懷那個 0 個錯誤,0 個警告 的成功提示,在網上搜了一下。原來問題出在預設庫的引...

vs2008 編譯驅動

一 c c 屬性設定 1.新增包含檔案 wdk inc crt wdk inc api wdk inc ddk 2.設定目標平台 preprocessor x86 3.修改呼叫約定為 stdcall gz 4.執行時庫選擇 多執行緒除錯 mtd 或者多執行緒 mt 基本執行時檢查 預設值 二 lin...

VS2008編譯問題

將之前版本的程式拿來用vs2008重新編譯發現好多編譯問題,比如 1 提示 fatal error c1083 cannot open include file mclmcrrt.h no such file or directory 試試 該vs2008的程式使用的matlab的庫,預設的vs d...