我正在尝试将-S
传递给GCC以获取其中一个可执行文件。我试过这个:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S")
但我得到“文件格式无法识别;视为链接器脚本”
(没有那条线就建好了)
这样传递-S
有什么问题吗?或者是否有其他方法让CMake输出汇编.s文件?
答案 0 :(得分:21)
CMake内置了汇编程序和预处理程序输出的目标。对于名为src.cpp
的文件,CMake为汇编程序输出生成目标src.s
,为预处理器输出生成src.i
。如果编译标志不同,它会单独为每个目标生成汇编器/预处理器输出。使用make生成器为您的CMake项目,你可以得到这样的汇编器和预处理器输出:
make src.s # assembler output
make src.i # preprocessor output
答案 1 :(得分:12)
如果您尝试实际构建MyTarget
并离开生成的程序集,则可以将-S
替换为-save-temps
,然后执行make MyTarget
}