4

を使用するCMakeプロジェクトをコンパイルしようとしています

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wall -std=gnu++0x")

MacOSXLionの下のCMakeLists.txtファイルにあります。XCode4.2.1をインストールしました。しかし、コンパイラはこれで失敗します:

cd something/src/lib && /usr/bin/c++   -Dlib_ginacra_EXPORTS -Wall -std=gnu++0x -fPIC   -o CMakeFiles/lib_ginacra.dir/utilities.cpp.o -c something/src/lib/utilities.cpp
cc1plus: error: unrecognized command line option "-std=gnu++0x"

コンパイラのバージョンは次のとおりです。

c++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
4

3 に答える 3

7

GCC 4.2は古くからありますが、Appleは新しいバージョンを出荷していません。

最新のGCCは、Macポート(おそらくより簡単で迅速)のような場所からインストールするか、 http: //gcc.gnu.org/wiki/InstallingGCCの指示に従って自分でビルドすることができます。

于 2012-05-07T11:49:46.517 に答える
0

この問題に直面しているLionユーザーの場合:

ここからMacPorts-2.2.1-10.7-Lion.pkgMacPortsインストーラパッケージをダウンロードしてインストールします

ターミナルで、新しいGCCバージョンを検索します。

$  port search --name --glob 'gcc*' 

新しいバージョンをインストールします(私はgcc5を使用しました)

$  sudo port install gcc5

新しいバージョンの名前を取得し、それをデフォルトとして設定します

$ port select --list gcc

Available versions for gcc:
    llvm-gcc42
    mp-gcc5
    none (active)

$ sudo port select --set gcc mp-gcc5

新しいターミナルを開き、更新されたことを確認します。

$ c++ --version
c++ (MacPorts gcc5 5.2.0_0) 5.2.0
于 2015-10-06T12:42:34.587 に答える
-1

node-gypを使用したC++コンパイルを必要とするnodejs拡張機能のインストール中に、ほとんどの場合、エラー「cc1plus:エラー:認識されないコマンドラインオプション-std = gnu++0x」が発生します。したがって、このエラーを解決する方法は、ここに解決策があります。基本的に、これらのエラーはNodejsのバージョンが異なるために発生します。これは、多くのノードライブラリがインストール中にCまたはC++のコンパイルを必要とするためです。したがって、Nodejsの古いバージョンはバージョン4.2未満のgccコンパイラでpython 2.7を 使用しますが、Nodejsの新しいバージョンはgcc44コンパイラを使用するため、nodejsライブラリのインストール中に上記のエラーが発生します。

したがって、システムに複数のpythonバージョンがインストールされている場合は、nodejsとnode-gypバージョンを劣化させ、pythonバージョンを指定する必要があります。そうすれば、上記のエラーは発生しなくなります。

完全なチュートリアルを表示するには、ここをクリックしてください

于 2015-11-01T05:11:29.853 に答える