首页 > 解决方案 > Q 在调试版本中使用发布库

问题描述

我们从合作伙伴那里收到一个现成的编译库,仅作为发布版本。正如预期的那样,它在我们的发布版本中运行良好,但在调试版本中使用它时也运行良好(用于我们的内部测试或调试会话)

现在发生了一些变化,并且最新版本的库在调试版本中不再工作我得到错误

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

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

标签: linkervisual-c++-2015

解决方案


我们认为我们发现了问题:库中只有一个 obj 使用了 C++/STL 功能 这在早期版本的库中没有使用(我们)。但是他们更改了其他一些功能,现在他们使用这些功能-> 链接器现在正在添加 C++ 代码并理所当然地抱怨它。

进一步发现:您可以混合调试/发布代码,只要您不使用运行时库中的任何内容。


推荐阅读