今天用VS 2017編譯一個以前的VC++動態庫項目,出現了一個鏈接器問題: LNK1104 無法打開文件"libcmtd.lib" 。
操作系統版本為:Windows 10 18362.145。
VS版本為:VS 2017 15.9.12。
步驟如下:
1、在項目上點擊右鍵,選擇【屬性】,然后選擇【鏈接器】,選擇【常規】,找到【附加庫目錄】,然后在VS的安裝目錄中找到libcmtd.lib所在目錄,有兩個目錄,一個是x86,一個是x64,然后添加合適的一個,我的目錄是【C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\lib\x86】。

2、添加目錄后,找到【輸入】,選擇【附加依賴項】,將該庫文件添加進去。

3、此時已經解決無法打開該庫文件的問題。但是我的項目中遇到了另一個問題:error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2。檢查后發現是代碼生成的運行庫設置不正確,由於之前工程輸出是release模式,現在要調試,改成了debug模式,但是運行庫沒有改【多線程調試 (/MT)】,應該改為【多線程調試 (/MTd)】。

Done!
