屬性1. 在工程上右鍵->屬性->c/c++->代碼生成->運行庫
四個選項及含義分別如下:
1.1 /MDd:MD_DynamicDebug,我理解是 “共享DLL中使用MFC” 時的 Debug
1.2 /MD:MD_DynamicRelease,我理解是 “共享DLL中使用MFC” 時的 Release
1.3 /MT:MD_StaticRelease,我理解是 “在靜態庫中使用MFC” 時的 Debug
1.4 /MTd:MD_StaticDebug,我理解是 “在靜態庫中使用MFC” 時的 Release
屬性2. 在工程上右鍵->屬性->配置屬性-->常規-->MFC的使用
2.1 其中兩個選項如下:
2.2 在共享DLL中使用MFC
2.3 在靜態庫中使用MFC
屬性3. 我們有兩種編譯模式,一種是Release,一種是Debug。
問題來了:
VisualStudio報錯:error LNK2038: 檢測到“RuntimeLibrary”的不匹配項: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug
翻譯:這句的意思是 檢測到 “運行庫” 的不匹配項:值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug
人話:………………………… 屬性1……………………… 屬性1.4…………………………屬性1.1
解決:能夠看出來是Debug時的 屬性1 和 屬性2 不匹配,那要么將 屬性1設置為 /MDd,要么將 屬性2 設置為 在靜態庫中使用MFC。
反正編譯模式(屬性3)、MFC的使用(屬性2)、運行庫(屬性3)要三位一體對應起來。