我有一个项目在 Visual Studio 2010
中运行。现在我正在使用 Visual Studio 2012
。
现在我在构建项目时遇到错误。
我也查看了 Google
和 SO
。但是我没有找到任何解决方案。
c:\program files\microsoft visual studio 11.0\vc\include\string(557): error C2065: 'errno' : undeclared identifier
2>c:\program files\microsoft visual studio 11.0\vc\include\string(557): error C2065: 'errno' : undeclared identifier
2>c:\program files\microsoft visual studio 11.0\vc\include\string(562): error C2065: 'errno' : undeclared identifier
2>c:\program files\microsoft visual studio 11.0\vc\include\string(574): error C2065: 'errno' : undeclared identifier
2>c:\program files\microsoft visual studio 11.0\vc\include\string(579): error C2065: 'errno' : undeclared identifier
我已经尝试将 stdlib.h
包含到 sting
头文件中,但我仍然遇到同样的错误。
感谢任何帮助。
最佳答案
此问题可能有多种可能的原因。这 你应该做的第一件事是创建一个单行源代码:
#include <string>
什么都没有,然后尝试编译它。如果这不 编译,你的安装有问题,你 应该重新安装它。然后,为了确定,删除一切 在您的源代码树中,除了实际的源代码、项目文件和 解决方案,并重建。可能有一些旧文件放置 以某种方式导致问题的原因。我对此表示怀疑,但是 无论如何,这是您升级时应该做的事情 一个编译器,甚至只是安装一个补丁。 (如果你有 一切都在源代码控制之下,你应该这样做, 最简单的解决方案就是删除所有内容,然后做一个新的, 干净的结帐。)
如果这些措施不能解决问题(并且不知何故,
我怀疑他们不会),你的代码库有问题
某处。 errno
标准要求是一个宏;
要获取您引用的错误消息,宏必须未定义。
<string>
包括(间接地)定义它的文件。鉴于
这个,我能想到的唯一原因是一个较早的包含
文件已经包含一个定义 errno
的文件, 进而
#undef
编辑。要验证这一点,请将您的 #include <string>
作为
首先包含您的源代码,看看是否可以解决
问题。如果是这样,那么您必须找到该文件
#undef
, 并修复它。
关于c++ - 错误 C2065 : 'errno' : undeclared identifier in <string> in Visual Studio 2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18268352/