您的位置:首页 > 其它

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

2013-11-12 12:40 756 查看
今天在使用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>即可。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐