5

我的項目是編譯和運行調試OK和VS釋放模式2010年 今天我試圖用VS 2012編譯它,我得到這個錯誤:編譯從Visual Studio 2010年至2012 RC結果的MFC應用程序在LNK2038

1> Generating Code... 
1>pcrecppd.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': 
value '1600' doesn't match value '1700' in NamesEditorDlg.obj 

我在代碼中搜索了「_MSC_VER」,但找不到任何匹配項。我也找不到「1600」或「1700」。

所以我想知道如何解決這個問題。

+0

你剛纔複製文件到2012文件夾或創建一個新項目並導入? – 2012-08-04 11:27:42

+0

我複製了這些文件。 – Wartin 2012-08-04 11:36:47

+0

_MSC_VER是一個預定義的宏,因此它是內置的,你不會在源中找到它。 (顯然它的值在VS2010中是1600,在VS2012中是1700)。你是否複製了任何二進制文件,VS2010內部的任何內容,編譯目標文件?你確定新編譯器沒有試圖訪問較舊的庫嗎?做VS2012編譯的新項目嗎? – 2012-08-04 13:42:29

回答

5

貌似你在vc2012中使用vc2010中的.lib(猜測它看起來像一個PCRE庫)。你需要重新編譯所有的.libs或運行時鏈接(即LoadLibrary,GetProcAddress等)。

0

不,您需要的只是檢查項目的屬性。存在舊的項目文件的鏈接。需要在頁面上打開項目屬性「.NET Framework和鏈接」那裏刪除所有鏈接結束爲新的2012項目文件添加新的。

3

在項目屬性中,選擇常規,然後將「平臺工具集」設置更改爲「Visual Studio 2010(v100)」。在完成之後,我的代碼可以與原始庫一起編譯。

+0

,反之,如果你的問題是1700到1600(而不是問題中的1600到1700),你可以做相反的事情。 Per http://stackoverflow.com/questions/19575747/error-lnk2038-mismatch-detected-for-msc-ver-value-1600-doesnt-match-valu – metao 2013-11-15 03:52:29

相關問題