7

Microsoft の拡張機能を使用せずに、Visual Studio 2010 をセットアップして、昔ながらの ANSI コンパイルを実行しようとしています。

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,_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++ コードをきれいにコンパイルするにはどうすればよいですか?

4

2 に答える 2

5

ネイティブ型として定義するwchar_tとエラーは消えます。

于 2011-04-27T20:59:03.553 に答える
0

コードをファイル test.cpp にコピーしてから、コマンドを発行する場合

cl /Za /EHsc test.cpp

Visual C++ Express 2010 をインストールすると、警告やエラーが発生せずに正常にコンパイルされます。/EHsc は、例外を適切に処理するために必要ですが、なぜそれがデフォルトではないのか、よくわかりません。

これはあなたがしていることとは異なりますか?

于 2011-04-27T21:47:54.607 に答える