error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug
Posted 一只羊JAS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug相关的知识,希望对你有一定的参考价值。
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,反正编译模式、MFC的使用、运行库要三位一体对应起来。
以上是关于error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug的主要内容,如果未能解决你的问题,请参考以下文章
为“_MSC_VER”检测到错误 LNK2038 不匹配:值“1700”与 xxxx.obj 中的值“1900”不匹配
QT-osgQOpenGL.lib: error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”
LNK2038:检测到“RuntimeLibrary”不匹配:值“MT_StaticRelease”与 file.obj 中的值“MD_DynamicRelease”不匹配
错误 LNK2038:检测到“_ITERATOR_DEBUG_LEVEL”不匹配:值“2”与 XX.obj 中的值“0”不匹配
在 VS 2012 (C++) 中编译 Visual Studio 2010 项目:错误 LNK2038:检测到“_MSC_VER”不匹配:值“1600”与值“1700”不匹配