繁体   English   中英

在Visual Studio 2017中的errno上获取链接错误lnk2001

[英]Getting a link error lnk2001 on errno in Visual Studio 2017

在升级到2017年之前,我已经在每个版本的Visual Studio中编译了一些C代码。由于某种原因,升级过程破坏了我的链接器引用,这导致了400多个链接错误,如HWND,SendMessage等。

我遍历了链接器属性输入列表,并添加了user32.lib,gdi32.lib和其他几个命令来解决大多数丢失的外部符号错误,但无法摆脱最后两个错误。 他们俩都在寻找_errno,旧的C程序员会认出_errno为文件系统错误结果变量。 我将libcmtd.lib显式添加到链接器输入列表中,仍然没有任何乐趣。

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

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

我的外部引用errno的文件仅在errno为零或不为零时才在意,因此我不必费心在文件中包含errno.h。

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

VS2017中的更改是有道理的,因此它没有更早完成就有些奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM