`
897371388
  • 浏览: 528298 次
文章分类
社区版块
存档分类
最新评论

关于“error C2871: 'std' : does not exist or is not a namespace”和“Error spawning cl.exe“的解决办法

 
阅读更多
今天在使用VC6运行程序的时候出现了几个新的error,以前没有碰到,总结一下,希望对其他同学有帮助:


1.Error spawning cl.exe


错误分析:


这个error一般在点击“Compile”或者“Build”后出现的:“Compiling... ,Error spawning cl.exe”,“cl.exe”是VC使用的真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,所以出现这个错误实际上是因为cl.exe路径设置出错造成的,这个默认路径是在程序安装好之后自动设置的,是没有问题的,但是有时候在安装一些软件的时候会自动修改这个路径值,导致运行的vc的时候找不到这个路径。

解决办法:


打开vc界面点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。
如果你是按照初始路径安装vc6.0的,路径应为:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT

include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

source files:

C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC

如果你装在其他盘里,则仿照其路径变通就行。关键是microsoft visual studio\ 后面的东西要相同。

2.error C2871: 'std' : does not exist or is not a namespace


当我在vc6中运行程序:
#include<iostream.h>
using namespace std;
int main(){
cout<<"hello"<<endl;
return 0;
}

出现了error C2871: 'std' : does not exist or is not a namespace这个错误!


错误分析:


C++有两个不同版本的头文件:<iostream.h>和<iostream>。引入namespace这个概念以前编译器用的是#include <iostream.h>,而引入namespace的概念以后引用std名字空间的头文件则变成了<iostream>。<iostream.h>是比较老的C++的头文件的版本,而namespace是98年才被加入C++标准的,所以<iostream.h>里面是没有std这么个命名空间的,当使用 <iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现。头文件<iostream>则没有定义全局命名空间,使用时必须使用namespace std才能正确使用cout。

vc6.0支持这个两个版本. 不过现在都用<iostream>了

解决办法:


#include <iostream>
using namespace std;
或者是
#include <iostream.h>即可。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics