2012-01-16 9 views
6

"アンドロイド - NDK-linux_x86 /ソース/ CXX-STL/GNU-のlibstdC++ /含める/メモリ" ヘッダファイルを調べるとき、私はAndroid-ndk(r7)で.cppファイルをコンパイルするときに "C++ 0X"実験標準を有効にするにはどうすればよいですか?

__GXX_EXPERIMENTAL_CXX0X__ 

フラグに従ってこのヘッダは、他のSTLヘッダファイルが含まれていることを見つけます。私はこのフラグが "C++ 0X"標準に関係していると思います。この規格はまだAndroid-ndk r7で実験的かもしれません。しかし、私はプロジェクトでこのC++標準を有効にしたいと思います。 (私はこの "C++ 0X"標準がデフォルトで有効になっているかどうかは分かりません)

私はAndroid-ndkにこのフラグを設定するにはどうすればよいのでしょうか。 Androidプロジェクトの "project/jni"ディレクトリ。または、私のアプリケーションで実験的な "C++ 0X"標準をどのようにすることができますか?

フラグを指定する必要がありますか? "Android.mk"/"Application.mk"ファイル内のLOCAL_CPPFLAGSおよび/またはAPP_CPPFLAGS。 (私は "Application.mk"で "APP_STL:= gnustl_static"を使用しています)

ありがとうございます。

ローレンスツァン

+1

C++ 03標準が存在するsine 2003おそらくC++ 11標準を意味します。 –

+0

@Als bdonlanによると、私は "C++ 0X"標準を意味します。私はこれを反映するために私の質問を変更しました。 – user1129812

答えて

7

C++ 03は実験標準ではありません。これがデフォルトです。

しかし、C++ 0Xは実験標準です。その正式名称はC++ 11に設定されていますが、実装はGCC(および他のすべての地域)では不完全です。 --std=c++0xをGCCに渡すことで有効にすることができます。何かが壊れていると不平を言う前にfeature status pageをチェックすることを忘れないでください。

+1

'** --std = C++ 0xをGCC **に渡すことでそれを有効にすることができます。'しかし、** - std = C++ 0x ** 'をAndroid-ndkのコンパイラにどのように渡すことができますか環境。私は "ndk-build"を使用しており、 "Android.mk"/"Application.mk"ファイルを通してコンパイルオプションを指定することを期待しています。 – user1129812

+3

「Android.mk」に「LOCAL_CPPFLAGS = -std = C++ 0x」を追加すると動作します。ありがとう。 – user1129812

関連する問題