1. ホーム
  2. c++

[解決済み] g++でC++11をコンパイルする

2022-03-03 21:33:55

質問

C++コンパイラーをC++11にアップデートしようとしています。 少し検索して、私はフラグを使用しなければならないという結論に至りました。 -std=c++0x または -std=gnu++0x しかし、私は国旗について多くのことを知りません。どなたか教えてください。(Ubuntu12.04を使用しています。)

C++11に含まれるライブラリ(配列など)を使おうとすると、コンパイラから以下のようなエラーが出ます。

#include <array>
#include <iostream>

int main()
{
    std::array<int, 3> arr = {2, 3, 5};
    ...
}

このファイルには、次期 ISO C++ 規格である C++0x のコンパイラとライブラリのサポートが必要です。このサポートは現在実験的であり、-std=c++0x または -std=gnu++0x コンパイラー・オプションで有効にする必要があります。

解決方法は?

フラグ(またはコンパイラオプション)は、コンパイラの実行ファイルに渡される通常のコマンドライン引数に過ぎません。

g++をコマンドライン(ターミナル)から起動することを想定しています。

$ g++ -std=c++11 your_file.cpp -o your_program

または

$ g++ -std=c++0x your_file.cpp -o your_program

上記がうまくいかない場合