6

macportsを使用してgcc47をインストールしました。selectを使用してgcc47をアクティブなコンパイラにしました。ターミナルでgcc--versionと入力すると、次のようになります。gcc(MacPorts gcc47 4.7.2_2)4.7.2 Copyright(C)2012 Free Software Foundation、Inc.これはフリーソフトウェアです。コピー条件については、ソースを参照してください。保証はありません。商品性や特定の目的への適合性についてもそうではありません。

Eclipseでc++コードをコンパイルしようとすると、次のようになります。呼び出し:GCCC++コンパイラg++-D__GXX_EXPERIMENTAL_CXX0X__ -I / Users / XXXX / QtSDK / Madde / sysroots / harmattan_sysroot_10.2011.34-1_slim / usr -O0 -g3 -Wall -c -length = 0 -std = c ++ 0x -MMD -MP -MF "XXXX_Process.d" -MT "XXXX_Process.d" -o "XXXX_Process.o" "../XXXX_Process.cpp" cc1plus:エラー:認識されないコマンド行オプション"-std= c ++ 0x" make:* [XXXX_Process.o]エラー1

私はこの仕事をするために何をしていないのかわかりません。学校で書いているプログラムには、より最新のコンパイラが必要です。よろしくお願いします。

4

3 に答える 3

3

問題は、Eclipse のパスでの検出の順序が、端末での順序と異なることです。上記のようにシンボリックリンクを試みましたが、それでも問題は解決しませんでしたが、これで解決しました!

多くの検索を行って他のことを試した後、手動でコンパイラとリンカーへのパスを設定することができましたProject -> Properties -> C/C++ Build -> Settings

ターミナルから which g++ を実行して、適切なバージョンの g++ がインストールされている場所を確認します。私のは入っています/opt/local/bin/g++

GCC C++ Compiler をクリックし、コマンドにフル パスを入力します (例: /opt/local/bin/g++)。-std=c++11[その他] をクリックして、フラグを追加したことを確認します。

GCC C コンパイラ (コマンドをフル パスに設定/opt/local/bin/g++)、GCC C++ リンカ ( /opt/local/bin/g++)、および GCC アセンブラ ( /opt/local/bin/as) についても同じことを行います。

これでようやくうまくいきました。問題が解決することを願っています!

于 2014-04-18T03:36:17.300 に答える
2

MacPorts は gcc を にインストールし/opt/local/bin、そのままにし/usr/binます。デフォルトの shell では前者の方が明らかに優先度が高いため、mac LLVM-gcc-4.2 コンパイラを指しているにもかかわらず$PATH、シェルは の下で gcc を見つけます。Eclipse はどうやら端末と同じように設定されていないため、バージョンを見つけます。/opt/local/bin/usr/bin/gcc$PATH/usr/bin/

/usr/bin/{gcc,g++}MacPorts バージョンに手動でシンボリック リンクすることで、これを修正できました。

于 2013-04-21T00:37:26.270 に答える
-2

-stdc++11 を入力したとき、-c -fmessage-length=0 とそれの間に「スペース」を入れましたか? 同様に...-c -fmessage-length=0 -stdc++11 -c -fmessage-length=0-stdc++11 ではありません。その単一のスペースが、Windows で Eclipse が gcc を認識するのを妨げていました。

于 2013-02-25T05:07:15.827 に答える