为目标生成程序集

时间:2012-10-18 22:58:44

标签: cmake

我正在尝试将-S传递给GCC以获取其中一个可执行文件。我试过这个:

set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S") 

但我得到“文件格式无法识别;视为链接器脚本”

(没有那条线就建好了)

这样传递-S有什么问题吗?或者是否有其他方法让CMake输出汇编.s文件?

2 个答案:

答案 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 }