我正在尝试将-S
我的一个可执行文件传递给 GCC。我试过这个:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S")
但我得到“文件格式无法识别;视为链接器脚本”
(没有那条线它构建得很好)
-S
像这样通过有什么问题吗?还是有另一种方法让 CMake 输出程序集 .s 文件?
我正在尝试将-S
我的一个可执行文件传递给 GCC。我试过这个:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S")
但我得到“文件格式无法识别;视为链接器脚本”
(没有那条线它构建得很好)
-S
像这样通过有什么问题吗?还是有另一种方法让 CMake 输出程序集 .s 文件?
CMake 为汇编器和预处理器输出内置了目标。对于名为 的文件src.cpp
,CMakesrc.s
为汇编器输出和src.i
预处理器输出生成目标。如果编译标志不同,它会分别为每个目标生成汇编器/预处理器输出。为您的 CMake 项目使用 make 生成器,您可以获得汇编器和预处理器输出,如下所示:
make src.s # assembler output
make src.i # preprocessor output
如果您尝试实际构建MyTarget
并保留生成的程序集,您可以替换-S
为-save-temps
然后执行make MyTarget