web-dev-qa-db-ja.com

Eclipse NeonでC ++ 11構文を有効にするにはどうすればよいですか?

Eclipse NeonでC + 11コードを開発していますが、今日、C + 11で導入されたループに基づく範囲がIDEによって認識されないことを示す赤で強調表示されています。

このような古いバージョンのCDTでこれを行う方法について複数のリンクを見つけました( Eclipse CDT C++ 11/C++ 0x support )「ツール設定」はありませんが、確認できます。タブ。

enter image description here

誰かが私のプロジェクトを設定してC++ 11構文が正しく強調表示されるようにする方法を提案できますか(私は別のビルドシステムを使用しています)

18
CPayne
  1. プロジェクトを右クリックし、[プロパティ]をクリックします
  2. C/C++ GeneralおよびPreprocessor Include Paths、Macrosなどに移動します。
  3. [プロバイダ]タブを選択し、使用するコンパイラのコンパイラ設定行をクリックします。
  4. -std = c ++ 11をCommandに追加して、コンパイラーの仕様を取得します。
  5. 変更を適用します。

次のようになります。

${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11
39
Andreas DM

次のこともできます

  1. プロジェクトのプロパティに移動します(alt Enter)
  2. 左側のペインで、「C/C++ Build」までスクロールし、折りたたみ、設定を選択します。
  3. 右側のペインで、[ツール設定]メニューでコンパイラを選択して折りたたみ、[方言]を選択するか、ドロップダウンから言語標準を選択するか、[その他の方言フラグ]テキスト入力に-std = c ++ 11を入力します。

あるいは、

  1. [プロパティ]-> [C/C++ビルド]->折りたたみ、[設定]を選択します
  2. [ツール設定]タブで、コンパイラを選択し、[その他]フィールドを強調表示します。
  3. 「その他のフラグ」入力フィールドに-std = c ++ 11を追加します。
5
mancini0

私が理解できない理由で、Fedora 27で実行しているEclispe Oxygen + CDT 9.3.2がコードを確実にデバッグできなかった理由の手がかりを検索するとき、Googleはこの質問/回答を注目すべきものとして提示しました。

基本的に私の問題は、C++ 11の機能(特にshared_ptr)を使用する非常に単純なC++プログラムが、Fedora 27(gdbバージョン8.0.1がインストールされている)の上にあるEclipse Oxygen 2 + CDT 9.3.2でデバッグできないことです。標準パッケージリポジトリ)。いくつかのメソッド呼び出しにステップインすると、ハングしたデバッグセッションが発生し、何も実行されず、Eclipseを終了して回復しました。

コマンドラインでgdbを使用してバイナリをデバッグした場合、すべて正常でした。ブレークポイントなどを設定でき、すべてが正常に機能しました。しかし、Eclipseの内部からは何もしていません。

ただし、Andreasが示すように、-std = c ++ 11をプロジェクト設定に含めることで問題は解決しました。理由はほとんどわかりません。他の誰かが同様の問題に遭遇した場合に備えて、これを立てると思った。

g ++はバージョン7.2.1です

1
bazza

何らかの理由で、グローバルなc ++コンパイラ設定の編集が機能しませんでした。指示に従ってプロジェクト固有の設定を変更すると機能しました。参照: Eclipse CDT C++ 11/C++ 0x support

0
ragerdl