在调试模式下使用 Visual C++ 2017 针对 XP (v141_xp) 链接 ODBCCP32.lib 时LN

LNK1103 when linking ODBCCP32.lib using Visual C++ 2017 targetting XP (v141_xp) in debug mode

本文关键字:xp v141 链接 ODBCCP32 LN lib XP 模式 调试 Visual 针对      更新时间:2023-10-16

尝试将最初在Visual Studio 2010中构建的程序升级到面向2017时,在链接odbccp32.lib时出现LNK1103错误,指示:

debugging information corrupt; recompile module

我已经包含了 legacy_stdio_definitions.lib,它似乎是解决遗留静态库的符号问题所必需的,但我仍然收到有关调试信息的错误。

发布版本工作正常。

> 事实证明,这实际上是某些版本的Visual Studio 2017的编译器问题。 版本 15.3 和 15.4 存在此问题,并且在非调试模式下没有链接,我无法在这些编译器版本中找到好的解决方案。

但是,我确实发现了一个详细说明此问题的开发人员社区线程,在使用Visual Studio 2017版本15.3.x和15.4.x进行链接时,这显然会影响许多旧库。

根据该线程中的MSFT工作人员的说法,该问题已在15.5中解决。 从上面链接的线程:

朱永康 ·10月 04 在 11:08 上午 感谢您的报告。此问题已在VS 2017更新5中修复。

我能够通过安装当前的 15.5 预览版本并成功链接库来确认这种情况。

我添加了这个问题和答案,因为关于这个主题的现有搜索信息似乎非常差。