Ras*_*yak 1 c c++ string visual-studio-2010 visual-studio-2012
我有一个项目在运行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
Run Code Online (Sandbox Code Playgroud)
我曾尝试与包括stdlib.h进sting头文件,但还是我收到此相同的错误.
任何帮助赞赏.
这个问题可能有几种可能的原因.您应该做的第一件事是创建一个单行来源:
#include <string>
Run Code Online (Sandbox Code Playgroud)
并没有别的,并尝试进行编译.如果这不能编译,则表明您的安装存在问题,应该重新安装.然后,就可以肯定,删除一切都 在你的源代码树,除了实际的来源,项目文件和解决方案,并重建.可能存在一些旧文件,这些文件以某种方式导致问题.我对此表示怀疑,但无论如何,无论如何,无论何时升级编译器,甚至只是安装补丁,都应该这样做.(如果您已将所有内容都置于源代码控制之下,那么最简单的解决方案就是删除所有内容,然后进行全新的清理检查.)
如果这些措施无法解决问题(不知何故,我怀疑他们不会),那么你的代码库就会出现问题. errno按标准要求是宏观; 要获取您引用的错误消息,宏必须是未定义的.
<string>包括(间接)定义它的文件.鉴于此,我能想到的唯一原因是早期的包含文件已经包含了一个定义的文件errno,然后
#undef编辑它.要验证这一点,请将您的信息#include <string>作为源代码的第一个包含,并查看是否可以解决问题.如果是,那么你必须找到执行该操作的文件#undef并进行修复.
| 归档时间: |
|
| 查看次数: |
5660 次 |
| 最近记录: |