Android CMakeLists.txt-如何输出程序集列表

Android CMakeLists.txt-如何输出程序集列表,android,android-ndk,cmake,clang,Android,Android Ndk,Cmake,Clang,我的CMakeLists.txt文件中有以下行: set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-save-temps") 这告诉编译器将程序集保存在*.s文件中 但我需要知道如何使其包含程序集列表 i、 e.将C源代码放在*.s文件中程序集旁边 我相信这通常是用-l标志完成的,但它似乎不起作用 有什么想法吗?-保存临时工根本不是这个问题。您需要-S标志来生成程序集列表。不幸的是,您不能吃蛋糕,让它在同一次运行中创建程序集

我的CMakeLists.txt文件中有以下行:

set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-save-temps")
这告诉编译器将程序集保存在*.s文件中

但我需要知道如何使其包含程序集列表

i、 e.将C源代码放在*.s文件中程序集旁边

我相信这通常是用-l标志完成的,但它似乎不起作用


有什么想法吗?

-保存临时工根本不是这个问题。您需要
-S
标志来生成程序集列表。不幸的是,您不能吃蛋糕,让它在同一次运行中创建程序集和对象文件。使用cmake,您可以通过以下脚本添加此文件:

set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-S")
或者通过build.gradle

android {
  defaultConfig {
    externalNativeBuild { 
      cmake {
        cFlags "-S"

无论哪种情况,生成都将失败,但您可以从收集程序集列表。externalNativeBuild/cmake/debug/armeabi/CMakeFiles/native lib.dir/src/main/cpp。您可以选择手动将这些文件从
*.o
重命名为
*.s
-save temps
与此无关。您需要
-S
标志来生成程序集列表。不幸的是,您不能吃蛋糕,让它在同一次运行中创建程序集和对象文件。使用cmake,您可以通过以下脚本添加此文件:

set_target_properties(native-lib PROPERTIES COMPILE_FLAGS "-S")
或者通过build.gradle

android {
  defaultConfig {
    externalNativeBuild { 
      cmake {
        cFlags "-S"

无论哪种情况,生成都将失败,但您可以从收集程序集列表。externalNativeBuild/cmake/debug/armeabi/CMakeFiles/native lib.dir/src/main/cpp。您可以选择手动将这些文件从
*.o
重命名为
*.s

这对您有帮助吗?这对你有帮助吗?谢谢你的回复。我尝试了这个,构建是成功的。在删除-save temps之后,上述文件夹中再也没有任何.s文件。我还尝试了-S和-save temp,但没有成功。也许你有cpp文件,那么你需要
cppFlags
。如果你添加
arguments'-DCMAKE\u VERBOSE\u MAKEFILE:BOOL=ON'
,你会在你的gradle控制台中看到实际的编译命令。好的,谢谢,我用cppFlags“-S”将.o文件显示在你提到的文件夹中在build.gradle文件中,忽略cmake文件。不幸的是,这不是程序集列表。它是汇编语言,是的,但是没有混合的C语言,这是不受clang支持的。您可以切换到GCC,但它是另一个编译器,NDK不鼓励使用它。谢谢您的回复。我尝试了这个,构建是成功的。在删除-save temps之后,上述文件夹中再也没有任何.s文件。我还尝试了-S和-save temp,但没有成功。也许你有cpp文件,那么你需要
cppFlags
。如果你添加
arguments'-DCMAKE\u VERBOSE\u MAKEFILE:BOOL=ON'
,你会在你的gradle控制台中看到实际的编译命令。好的,谢谢,我用cppFlags“-S”将.o文件显示在你提到的文件夹中在build.gradle文件中,忽略cmake文件。不幸的是,这不是程序集列表。它是汇编语言,是的,但是没有混合的C语言,这是不受clang支持的。您可以切换到GCC,但它是另一个编译器,NDK不鼓励使用它。