2016-04-16 2 views
11

私はAndroidスタジオ1.3.2 + ndk-r11b-windows-x86_64を使用しており、ネイティブコードとC++ 11機能(share_ptr、weak_ptrなど)を使用してプロジェクトを構築しようとしていますが、いくつかのエラーがあります。例:AndroidスタジオでC++ 11を有効にするにはどうすればいいですか?

Error:(22, 6) error: 'shared_ptr' in namespace 'std' does not name a template type

問題は:Androidスタジオ+ NDKでC++ 11を使用する方法ですか?

p.s. 私は「build.gradle」に

android.ndk { 
     moduleName = "game" 
     cppFlags.addAll(["-I${file("src/main/jni/native_app_glue")}".toString(), 
         "-I${file("src/main/jni")}".toString(), 
         "-I${file("src/main/jni/data")}".toString()]) 
     cppFlags.add ("-std=c++11") 
     ldLibs.addAll(["android", "EGL", "GLESv2", "OpenSLES", "log"]) 
     stl  = "stlport_static" 
} 

をフラグcppFlags.add ("-std=c++11")を追加しましたが、それはうまくいきませんでしたらしいのです。私はアンドロイドに行くのAppのbuild.gradleファイルに

+1

にこの

cppFlags "" 

からCPPFLAGSパラメータをでしょう編集stlportからlibC++またはgnustlに切り替えることを検討してください。 – Michael

+0

をgnustlに変更しました – angevad

+1

ファイル "build.gradle"の文字列 "stl = stlport_static"を "stl = gnustl_static"に置き換えました。助けてくれてありがとう、マイケル。 – angevad

答えて

9

- > defaultConfig - > externalNativeBuild - > cmakeのと私は、私はこの

cppFlags "-std=c++11" 
+0

OPは彼がAndroid Studio 1.3.2を使用していると述べています。 cmakeの使用はAndroidスタジオ2.2以降でのみ可能です - 2016年9月中旬にリリースされました。 – SideLobe

+2

CMakeで 'set(CMAKE_CXX_STANDARD 14) 'でC++ 14を有効にしました。なぜ私はこのオプションが効果を持っていないのだろうかCMakeはGradleを介して呼び出されるのだろうか?私はGradleの外で生成するとうまく動作します。 Gradleがいくつかのフェイナガンを引っ張っているようだ。 –

関連する問題