Android CMakeLists.txt-如何输出程序集列表
我的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标志来生成程序集列表。不幸的是,您不能吃蛋糕,让它在同一次运行中创建程序集
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不鼓励使用它。