LNK 2038:使用#include<;xxx>; < >我在DLL的MyDLL中有C++代码,它被C语言项目调用。这个设置一直运行良好。最近我介绍了几个#include的实例,现在,每当我尝试在调试模式下编译时,都会出现LNK 2038错误: 1>SimConnect.lib(SimConnectClient.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in MyDll.obj 1>SimConnect.lib(commClient.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in MyDll.obj 1>SimConnect.lib(client.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in MyDll.obj

LNK 2038:使用#include<;xxx>; < >我在DLL的MyDLL中有C++代码,它被C语言项目调用。这个设置一直运行良好。最近我介绍了几个#include的实例,现在,每当我尝试在调试模式下编译时,都会出现LNK 2038错误: 1>SimConnect.lib(SimConnectClient.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in MyDll.obj 1>SimConnect.lib(commClient.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in MyDll.obj 1>SimConnect.lib(client.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in MyDll.obj,c++,C++,lib是一个发行版(我没有源代码),因此,它的RuntimeLibrary的值是MD(多线程DLL(release))。现在,根据我已经找到的一些答案,我在调试配置中将RuntimeLibrary更改为MD 具体地说,我的问题是,即使在调试配置中将MyDll项目属性上的RuntimeLibrary更改为多线程Dll(MD),我仍然会得到完全相同的错误。因为我得到了完全相同的错误,关键是 “…与MyDll.obj中的值'MDd\u DynamicDebug'不匹配” 即使项目属性已经更改,我还是认

lib是一个发行版(我没有源代码),因此,它的RuntimeLibrary的值是MD(多线程DLL(release))。现在,根据我已经找到的一些答案,我在调试配置中将RuntimeLibrary更改为MD

具体地说,我的问题是,即使在调试配置中将MyDll项目属性上的RuntimeLibrary更改为多线程Dll(MD),我仍然会得到完全相同的错误。因为我得到了完全相同的错误,关键是

“…与MyDll.obj中的值'MDd\u DynamicDebug'不匹配”

即使项目属性已经更改,我还是认为这暗示我可能没有正确更改RuntimeLibrary的值

此外,错误只有在我使用#include(#include“xxx”不是问题)时才会弹出。每当我注释任何错误时#include错误都不会困扰我

有人能给我一个提示,说明我可能做错了什么吗


了解为什么使用这些#include会触发SimConnect的不匹配错误也很有趣。

这与#include没有任何关系,一切都与您链接的内容有关。只有一种类型的静态库构建可用是一个严重的问题,您不应该容忍。这种问题不会发生结束于/MD vs/MDd不匹配,当您更新具有新运行时DLL但仍使用需要旧库的旧库的vs版本时,情况会变得更糟。照目前的情况,您似乎没有成功更改/MD选项,请确保选择了正确的配置和平台,并在设置对话框。好的,我找到了库的调试味道,我把它们更新到最新版本,现在都是有效的。以前没有这个问题,但是我对C++是相当新的。