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

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

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

最佳答案

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

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

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

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

关于c - 在Visual Studio 2017中的errno上获取链接错误lnk2001,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47611322/

10-13 07:25