的Android的CMakeLists.txt - 如何输出组件上市

问题描述:

我在的CMakeLists.txt文件以下行:的Android的CMakeLists.txt - 如何输出组件上市

set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-save-temps") 

这告诉编译器保留在组件中的* .S文件。

我需要知道如何使这个包括组装上市虽然。

即具有* .s文件在装配旁边的C源程序。

我相信,这通常与-l标志做了,但它似乎并没有工作。

任何想法?

+0

这对你有帮助吗? https://stackoverflow.com/a/41989789/637669 – arrowd

+0

不,但谢谢你! –

-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

+0

感谢您的回复。我试过这个,构建成功。之后在提到的文件夹中没有任何东西,并且在删除-save-temps之后没有.s文件了。我也用S和-save-temps尝试过,但没有运气。 –

+0

也许你有cpp文件,那么你需要'cppFlags'。 –

+1

如果您添加'arguments'-DCMAKE_VERBOSE_MAKEFILE:BOOL = ON'',您将在您的Gradle控制台中看到实际的编译命令。 –