23

我正在尝试将-S我的一个可执行文件传递给 GCC。我试过这个:

set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S") 

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

(没有那条线它构建得很好)

-S像这样通过有什么问题吗?还是有另一种方法让 CMake 输出程序集 .s 文件?

4

2 回答 2

27

CMake 为汇编器和预处理器输出内置了目标。对于名为 的文件src.cpp,CMakesrc.s为汇编器输出和src.i预处理器输出生成目标。如果编译标志不同,它会分别为每个目标生成汇编器/预处理器输出。为您的 CMake 项目使用 make 生成器,您可以获得汇编器和预处理器输出,如下所示:

make src.s   # assembler output
make src.i   # preprocessor output
于 2013-01-16T10:34:09.380 回答
18

如果您尝试实际构建MyTarget 保留生成的程序集,您可以替换-S-save-temps然后执行make MyTarget

于 2012-10-19T20:49:26.080 回答