为目标生成程序集

Dav*_*ria 15 cmake

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

set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S") 
Run Code Online (Sandbox Code Playgroud)

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

(没有那条线就可以很好地建造)

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

ing*_*net 22

CMake内置了汇编程序和预处理程序输出的目标.对于调用的文件src.cpp,CMake src.s为汇编器输出和src.i预处理器输出生成目标.如果编译标志不同,它会单独为每个目标生成汇编器/预处理器输出.使用make生成器为您的CMake项目,你可以获得这样的汇编器和预处理器输出:

make src.s   # assembler output
make src.i   # preprocessor output
Run Code Online (Sandbox Code Playgroud)

  • 现在,我手动更改正确的 makefile 并在生成后添加“-fverbose-asm”。然后我可以使用 `as -alhnd` 位。 (3认同)
  • 如何将此与隔行扫描的源注释结合起来,例如[this](http://stackoverflow.com/a/137479/388010)?Àla`g++ -g -O0 -c -fverbose-asm -Wa,-adhln test.cpp> test.lst` (2认同)

Fra*_*ser 12

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