Linker 在调试构建中使用发布库

Linker 在调试构建中使用发布库,linker,visual-c++-2015,Linker,Visual C++ 2015,我们只从合作伙伴处收到一个已编译好的lib作为发布版本。正如预期的那样,它可以很好地用于我们的发布版本,但在调试版本中使用它时也可以很好地工作(用于我们的内部测试或调试会话) 现在发生了一些更改,最新版本的libs在调试构建中不再工作 我得到了错误 mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in main.obj 我明白为什么现

我们只从合作伙伴处收到一个已编译好的lib作为发布版本。正如预期的那样,它可以很好地用于我们的发布版本,但在调试版本中使用它时也可以很好地工作(用于我们的内部测试或调试会话)

现在发生了一些更改,最新版本的libs在调试构建中不再工作 我得到了错误

mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in main.obj

我明白为什么现在会发生,但我不明白为什么在旧版本中不会发生。旧版本也有错误的RuntimeLibrary集,但不知何故它没有影响链接器。。。?(我使用DUMPBIN查找标志)

我们认为我们发现了问题: 库中只有一个obj使用C++/STL功能 在早期版本的lib中(我们)没有使用它。但是他们改变了一些其他函数,现在他们使用这些函数->链接器现在添加C++代码并正确地抱怨它。 进一步调查结果:
只要不使用运行库中的任何内容,就可以混合调试/发布代码

我们认为我们发现了问题: 库中只有一个obj使用C++/STL功能 在早期版本的lib中(我们)没有使用它。但是他们改变了一些其他函数,现在他们使用这些函数->链接器现在添加C++代码并正确地抱怨它。 进一步调查结果:
只要不使用运行库中的任何内容,就可以混合调试/发布代码

没有关于它以前为什么起作用的线索。唯一正确的处理方法是由库供应商提供调试版本及其发布版本。不知道它以前为什么工作。处理此问题的唯一正确方法是库供应商提供调试版本及其发布版本。