我有一个Android/NDK/JNI/Java/C++项目。
我有一个Gradle文件,看起来像这样:
....
cmake {
cppFlags "-std=c++11 -fexceptions"
arguments "-DANDROID_STL=c++_static"
}
....
我的问题是:在编译我的Android项目时,如何检查这些标志和参数是否得到了很好的考虑?
感谢
我有一个很大的cmake文件,其中包含这样的部分:
cmake {
arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_STL=c++_static"
cFlags "-D__STDC_FORMAT_MACROS", "-fno-integrated-as", "-fvisibility=hidden"
cppFlags "-fexceptions", "-frtti", "-fno-integrated-as", "-fvisibility=hidden"
}
//...
flavorDimensions "mode"
productFlavors {
normal {
dimension "mode"
externalNativeBuild {
cmake {
cFlags "-DNORMAL"
cppFlags "-DNORMAL"
}
}
}
demo {
dimension "mode"
externalNativeBuild {
cmake {
cFlags "-DDEMO"
cppFlags "-DDEMO"
}
}
}
}
并且所有选项都被考虑在内。但是,如果您愿意,您可以检查cmake缓存文件。生成文件名为build.ninja
,您可以在.cxx
文件夹中的项目变体文件夹中找到它。
通常,arguments
是传递给cmake的参数,但cppFlags
是传递给编译器的标志。