VS2013解決error LNK2019: 無法解析的外部符號 mfcs120ud.lib

  最近因爲要改一個MFC項目重寫學習MFC,沒想到只是用VS2013新建一個最簡單的MFC項目運行就報類上百個的類似"Error LNK2019: 無法解析的外部符號...mfcs120ud.lib"的錯誤。

 經過一番折騰,終於發現問題所在.打開C:\Users\Administrator\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props

發現默認庫引用了$(WindowsSDK_LibraryPath_x64),即引用了Windows SDK的64位版Lib庫,而我的VS項目中的編譯平臺爲Win32,Win32編譯平臺是不能和64位版本的lib或dll庫兼容的.

wKioL1iB3JSxVl3XAABS84nvOQs784.png-wh_50

 另外我的項目默認的MFC庫引用$(VCInstallDir)atlmfc\lib也是32位版,也不能和64位的Windows SDK兼容。這裏我不想編譯64位平臺,所以必須把函數庫版本和編譯平臺都設置爲32位才行。解決方法很簡單,只要把Microsoft.Cpp.Win32.user.props的$(WindowsSDK_LibraryPath_x64)改成$(WindowsSDK_LibraryPath_x86)即可。

 這裏要吐槽一下VC++開發最蛋疼的就是各種編譯不順問題,由於很多開發庫是不向下兼容的,導致各種Dll,Lib,或者編譯器版本不對都會引發許多問題,另外還有不少開發環境配置問題。還是搞unity3d開比較爽啊,在unity3d集成開發環境下無論是誰寫的多老的版本,稍作修改都可以一鍵完美升級,基本沒有什麼編譯不過版本不兼容問題。當然,可以能是因爲我對VC++開發不熟吧,解決這些雜七雜八的問題對自己也是一種提高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章