【问题标题】:Getting a link error lnk2001 on errno in Visual Studio 2017在 Visual Studio 2017 中的 errno 上获取链接错误 lnk2001
【发布时间】:2017-12-02 18:49:10
【问题描述】:

在我升级到 2017 之前,我在 Visual Studio 的每个版本中都编译了一些 C 代码。由于某种原因,升级过程破坏了我的链接器引用,导致 HWND、SendMessage 等内容出现超过 400 个链接错误。

我浏览了链接器属性输入列表并添加了 user32.lib、gdi32.lib 和其他一些以解决大多数缺少的外部符号错误,但无法摆脱最后两个错误。他们都在寻找 _errno ,老 C 的人会将其识别为文件系统错误结果变量。我明确地将 libcmtd.lib 添加到我的链接器输入列表中,但仍然没有乐趣。

如何解决 VS2017 中的最后一个链接错误?

【问题讨论】:

  • 根据项目的复杂程度,我会考虑重新创建它,而不是尝试修复引用。

标签: c visual-studio linker


【解决方案1】:

答案原来是VS2017修改了errno.h文件也声明了errno。在过去的 Visual Studio 实现中,errno.h 只是 errno 的各种返回值的定义列表。在 VS2017 中,errno.h 有条件地声明了 errno。

我的外部引用 errno 的文件只关心 errno 是否为零,所以我没有费心在文件中包含 errno.h。

所需要的只是在对 errno 进行外部引用的文件中包含 errno.h。

VS2017 中的变化是有意义的,所以它没有更早完成有点奇怪。

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    相关资源
    最近更新 更多