的Android的CMakeLists.txt - 如何输出组件上市
我在的CMakeLists.txt文件以下行:的Android的CMakeLists.txt - 如何输出组件上市
set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-save-temps")
这告诉编译器保留在组件中的* .S文件。
我需要知道如何使这个包括组装上市虽然。
即具有* .s文件在装配旁边的C源程序。
我相信,这通常与-l标志做了,但它似乎并没有工作。
任何想法?
-save-temps
是不是有关的。您需要-S
标志来生成汇编列表。不幸的是,你不能吃蛋糕,并让它在同一运行中创建程序集和目标文件。随着cmake的,您可以通过脚本添加该文件之一:
set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-S")
或通过的build.gradle:
android {
defaultConfig {
externalNativeBuild {
cmake {
cFlags "-S"
在这两种情况下,你的构建就会失败,但你可以收集从.externalNativeBuild/cmake的/调试/ armeabi/CMakeFiles /母语lib.dir/src目录/主/ CPP装配上市。您可以选择手动将这些文件从*.o
重命名为*.s
。
感谢您的回复。我试过这个,构建成功。之后在提到的文件夹中没有任何东西,并且在删除-save-temps之后没有.s文件了。我也用S和-save-temps尝试过,但没有运气。 –
也许你有cpp文件,那么你需要'cppFlags'。 –
如果您添加'arguments'-DCMAKE_VERBOSE_MAKEFILE:BOOL = ON'',您将在您的Gradle控制台中看到实际的编译命令。 –
这对你有帮助吗? https://stackoverflow.com/a/41989789/637669 – arrowd
不,但谢谢你! –