1. 程式人生 > >Error LNK2038 mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value

Error LNK2038 mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value

場景:用Jsoncpp原始碼編譯生成的庫(lib),與程式一起使用時,vs輸出錯誤提示Error LNK2038;

A1:原因:需要使用的是靜態庫,而實際的庫是動態庫。
        解決:將動態庫編譯為靜態庫,重新編譯解決方案
A2:  原因很簡單:在使用命令列編譯的時候,我的makefile裡面的命令沒有指定/MD或者/MT選項(所以其預設選了/MT),
       但是VS2013裡面的預設選項是/MD,所以造成了不匹配。
       解決辦法:專案>屬性>C/C++>程式碼生成>執行庫>選擇"/MT"即可
       (重點是,在生成庫與生成應用程式時,兩者的"執行庫" 選項選擇要一致)