2016-11-23 1 views
0

githubからダウンロードしたプロジェクトを作成しようとしています。 すべての依存関係を設定したら、「make」を実行するように求められます。しかし、 'make'は失敗し、chronoファイルが見つかりません。
私はそれがコンパイラ関連の問題であることを理解しており、私はC++ 11サポートを有効にする必要があります。具体的には、コンパイラフラグ-stdlib=libc++を渡します。
しかし、このフラグを私のMakefileに追加しても、同じエラーが発生します。誰がこのフラグをどこに設定する必要があるか説明できますか?コンパイラフラグC++用11 - クロノファイルが見つかりません

これはMakefileの内容です:

TARGETS = \ 
    ptools \ 
    feature \ 
    libsvm \ 
    wrapper 

all: 
    -for dir in $(TARGETS); do \ 
    cd $${dir}; $(MAKE); cd ..; \ 
    done cd libsvm; $(MAKE) lib; cd ..; 

clean: 
    -for dir in $(TARGETS); do \ 
    cd $${dir}; $(MAKE) clean; cd ..; \ 
    done 

test: 
    @echo hello; 

.PHONY: clean $(TARGETS) 

アップデート1:brew install gccを実行した後、それが依存関係のダウンロードを開始します。しかし、このエラーのある依存関係mpfrの1つをダウンロードすると、常に破損します。エラー:mpfrは、使用可能なコンパイラでは構築できません。 GNUのGCCをインストールします。

アップデート2私はGCCを更新するために管理し、それを返すのバージョンは6.2.0です。しかし、私はまだ同じエラーが表示されます。 MakefileにCXXFLAGS += -stdlib=libc++ -std=gnu++11を追加しましたが、バストはまだ同じ結果を表示しています。

+1

開発環境でどのコンパイラ(およびバージョン)を使用していますか? –

+3

'-std = C++ 11'を渡していますか?最後に使ったときにC++ 11のものを使うには、GCCとClangでこれを行う必要がありました。 – cHao

+0

githubプロジェクトへのリンクが役立ちます。 –

答えて

1

あなたのメイクファイル(前の規則にどこか)に

CXXFLAGS += -std=c++11 

を追加する必要があります。


最新のツールチェーンがあるとします。

古いコンパイラは

-std=c++0x 

があってもよいフラグをサポートします。

(あなたが your commentにを求めて)あなたのツールチェインを更新する方法

は、お使いのOS環境やソフトウェア管理システムに依存します。

少なくとも、あなたのツールチェーンの最新(安定版)をあなた自身でコンパイルすることです。

関連する問題