2016-10-25 4 views
3

Ich benutze NDK r12 mit Android Studio 2.2. Ich brauche CMake GCC zu verwenden 4.9 statt Clang unserer Code-Basis zu bauen, aber auch wenn ich die es klappern noch verwendet folgende bieten:Wie kann ich Android Studio mitteilen, GCC 4.9 mit CMake zu verwenden?

android { 
    compileSdkVersion 17 
    buildToolsVersion "25.0.0" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 17 

     externalNativeBuild { 
      cmake { 
       arguments '-DBUILD_TESTING=OFF -DANDROID_TOOLCHAIN=gcc-4.9' 
       cppFlags "-std=c++14 -fexceptions -frtti" 
      } 
     } 
    } 
} 

ich -DANDROID_TOOLCHAIN=gcc auch versucht haben, aber das funktioniert auch nicht. Wie kann ich CMake dazu bringen, die GCC ARM Toolchain zu benutzen?

Antwort

5

Teilen Sie Ihre arguments String in einen String pro Argument:

arguments '-DBUILD_TESTING=OFF','-DANDROID_TOOLCHAIN=gcc' 

Ich weiß nicht, ob es ausdrücklich möglich ist Version 4.9 von GCC angeben ("gcc-4.9" hat nicht funktioniert). Dies ist jedoch ohnehin überflüssig, da GCC 4.8 in NDK r11 entfernt wurde, so dass GCC 4.9 jetzt die einzige Version von GCC im NDK ist und ANDROID_TOOLCHAIN=gcc daher implizit GCC 4.9 bedeutet.

+0

Wow, das muss anders gemacht werden als die Liste der Optionen in 'cppFlags'? Wer zur Hölle ist dieses Zeug zu entwerfen ... –

+1

Nun, 'cppFlags' [soll auch sein] (https://google.github.io/android-gradle-dsl/current/com.android.build.gradle. internal.dsl.ExternalNativeCmakeOptions.html # com.android.build.gradle.internal.dsl.ExternalNativeCmakeOptions: cppFlags) eine 'Liste '. Vielleicht funktioniert es immer noch mit nur einer langen Zeichenfolge mit einer Reihe von Flags, aber es scheint nicht mit 'arguments' zu funktionieren. – Michael

Verwandte Themen