我试图让Visual Studio 2010设置为执行普通的旧ANSI编译,没有任何类型的Microsoft扩展.
我从一个空的项目模板开始,因为2010年似乎没有一个普通的ANSI项目模板了.
然后我就设定了
属性 – >配置属性 – > C/C++ – >语言 – >禁用扩展名=是(/ Za)
这是我的代码:
#include <iostream> int main( int argc,const char* argv[] ) { std::cout << "Hello World!"; return 0; }
以下是错误:
1>------ Build started: Project: ansi_test,Configuration: Release Win32 ------ 1>Build started 4/27/2011 4:20:00 PM. 1>InitializeBuildStatus: 1> Touching "Release\ansi_test.unsuccessfulbuild". 1>ClCompile: 1> Main.cpp 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(636): error C3861: 'width': identifier not found 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(636): error C3861: 'width': identifier not found 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(639): error C3861: 'flags': identifier not found 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(643): error C2227: left of '->sputc' must point to class/struct/union/generic type 1> type is ''unknown-type'' 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(643): error C2780: 'void std::fill(_FwdIt,_FwdIt,const _Ty &)' : expects 3 arguments - 0 provided 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2712) : see declaration of 'std::fill' 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(643): error C3861: 'rdbuf': identifier not found 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(648): error C2227: left of '->sputc' must point to class/struct/union/generic type 1> type is ''unknown-type'' 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(648): error C3861: 'rdbuf': identifier not found 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(654): error C2227: left of '->sputc' must point to class/struct/union/generic type 1> type is ''unknown-type'' 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(654): error C2780: 'void std::fill(_FwdIt,const _Ty &)' : expects 3 arguments - 0 provided 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2712) : see declaration of 'std::fill' 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(654): error C3861: 'rdbuf': identifier not found 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(659): error C3861: 'width': identifier not found 1> 1>Build Failed. 1> 1>Time Elapsed 00:00:00.63
我怎样才能得到这个,最基本的C代码来干净地编译?
解决方法
如果您是
define
wchar_t
as native type,则错误消失.