web-dev-qa-db-ja.com

Visual Studio CodeでのC ++ 11のコンパイル

Visual Studio Codeを使用してC++プログラムをコンパイルしていますが、g++コマンドを使用してコンパイルするため、ほとんどのC++プログラムで機能します。しかし、それを使用してc++11プログラムをコンパイルするのは困難です。

C++ 11プログラムをコンパイルしようとすると、コンパイラコマンドg++がデフォルトのC++ 98標準を使用してコンパイルしようとするため、エラーが発生します。

g++ -std=c++11を使用すると、g++を使用してC++ 11プログラムをコンパイルでき、cmdで次のように使用すると問題なく機能することを認識しています。

g ++ -std = c ++ 11 some_program.cpp

Visual Studio Codeの設定を微調整し、コンパイラコマンドをg++からg++ -std=c++11に変更して、run codeボタンを押すだけでプログラムをコンパイルできるようにしたいと思います。しかし、私はそれを見つけることができません。プログラムをコンパイルする別の方法がある場合は、私を助けてください。

現在、次のようなエラーが発生しています。

some_program.cpp:関数 'int main()'で:

some_program.cpp:12:33:エラー:C++ 98では、「A」は「{...}」ではなく、コンストラクターによって初期化する必要があります。ベクトルA = {11,2,3,14};

スニペットは正しく、C++ 11を使用するオンラインコンパイラでテストされています。ここでは、エラーで表示されるC++98を使用してコンパイルしようとしています。

4
Biswajit Roy

Settings> User Settingsに移動します。ここでRun Code Configurationを検索します。

このメニューで、次を見つけます:"code-runner.executorMap"

C++ 11をサポートするために、以下のようにユーザー設定に追加して、この設定を編集します。

"code-runner.executorMap":{
    "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},

OR

この設定を編集して、以下のようにユーザー設定に追加し、C++ 17をサポートします。

"code-runner.executorMap":{
    "cpp": "cd $dir && g++ -std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},

お役に立てれば !

6
Imacoder