2

Ubuntu 13.04 の更新で問題が発生したため、Ubuntu 13.04 システムを停止し、12.04 LTS と gnome シェルをインストールしました。これは、私が好むルック アンド フィールです。

私は主に C++ 開発に Ubuntu を使用し、C++ 11 を使用しています。私の好みの IDE は CodeLite http://www.codelite.org/です。

以前に行ったように、CodeLite をインストールし、GNU g++ C++ コンパイラ用の C++ 11 コンパイラ スイッチを追加しました: -std=c++11。(C++ 11 を使用する多くのプロジェクトがあり、13.04 で問題なくコンパイルおよびビルドできます。)

しかし、12.04 のコンパイラ スイッチを使用してプロジェクトをコンパイルできません。エラー メッセージが表示されます。

cc1plus: エラー: 認識されないコマンド ライン オプション '-std=c++11'。

C++ 11 がなくても、問題なく C++ プロジェクトをビルドして実行できます。

Ubuntu 12.04 に付属する GNU コンパイラは C++ 11 に準拠していませんか? これを修正するにはどうすればよいですか? Synaptic を調べたところ、利用可能なアップグレードが見つかりませんでした。12.04 で試したことはありませんが、C++ 11 スイッチは 12.10 で正常に動作していました。

私は立ち往生していますか?12.04 のままで C++ 11 を使用できるようにするには、どうすればこれを修正できますか?

4

1 に答える 1

6

4.7 より前の GCC バージョンは、「-std=c++11」の代わりに「-std=c++0x」を使用します。これは、これらのバージョンがリリースされた時点で標準が確実に C++11 ではなかったためです。古いバージョンでは実装されない、新しい GCC バージョンに存在するC++11 機能があります。GCC 4.8.1 は、完全な C++11 機能を備えた最初のリリースです。

Ubuntuのインストールの大部分を12.04に保ちながら、コンパイラパッケージを最新のものに更新できると思います。

于 2013-07-28T07:06:24.623 に答える