linker - Q 在调试版本中使用发布库
问题描述
我们从合作伙伴那里收到一个现成的编译库,仅作为发布版本。正如预期的那样,它在我们的发布版本中运行良好,但在调试版本中使用它时也运行良好(用于我们的内部测试或调试会话)
现在发生了一些变化,并且最新版本的库在调试版本中不再工作我得到错误
mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in main.obj
我明白为什么现在会发生,但我不明白为什么在旧版本中没有发生。旧版本也设置了错误的 RuntimeLibrary 但不知何故它并没有影响链接器......?(我使用DUMPBIN来查找标志)
解决方案
我们认为我们发现了问题:库中只有一个 obj 使用了 C++/STL 功能 这在早期版本的库中没有使用(我们)。但是他们更改了其他一些功能,现在他们使用这些功能-> 链接器现在正在添加 C++ 代码并理所当然地抱怨它。
进一步发现:您可以混合调试/发布代码,只要您不使用运行时库中的任何内容。
推荐阅读
- reporting-services - SSRS 表达式嵌套 iif 表达式
- c# - 进入页面后运行一次代码
- python - 在 Python 中将 JSON 转换为换行符分隔的 JSON
- git - Chef 更新节点 from Git
- hyperledger-fabric - Hyperledger Composer / Fabric - 更新资产的数据模型
- cloud-foundry - 在不运行应用程序的情况下访问 CF 服务
- java - 代号一个多列表图像 - 新的 gui 构建器
- command - 使用“win_command:mklink softlinkfile destfile”时找不到mklink.exe\”
- javascript - 开玩笑:从测试中返回一个值
- reactjs - Flow Typed - 高阶组件 - 道具注入