Cmake 为目标生成程序集
我正在尝试将我的一个可执行文件的Cmake 为目标生成程序集,cmake,Cmake,我正在尝试将我的一个可执行文件的-S传递给GCC。我试过这个: set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S") 但我得到了“文件格式不可识别;视为链接器脚本” (如果没有这条线,它可以正常工作) 像这样传递-S有什么问题吗?或者是否有其他方法让CMake输出程序集.s文件?如果您试图实际构建MyTarget并离开生成的程序集,您可以将-s替换为-save temps,然后执行使MyTargetCMake为汇编程序和预
-S
传递给GCC。我试过这个:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S")
但我得到了“文件格式不可识别;视为链接器脚本”
(如果没有这条线,它可以正常工作)
像这样传递
-S
有什么问题吗?或者是否有其他方法让CMake输出程序集.s文件?如果您试图实际构建MyTarget
并离开生成的程序集,您可以将-s
替换为-save temps
,然后执行使MyTargetCMake为汇编程序和预处理器输出内置目标。对于名为src.cpp
的文件,CMake为汇编程序输出生成目标src.s
,为预处理器输出生成目标src.i
。如果编译标志不同,它将分别为每个目标生成汇编程序/预处理器输出。使用CMake项目的make generator,可以获得如下汇编程序和预处理器输出:
make src.s # assembler output
make src.i # preprocessor output
我了解到,如果您在CMake项目上键入“make help”,您将看到一个目标列表。“MyTarget.s”就是其中之一,因此只需执行“make MyTarget.s”即可生成我要查找的程序集。如何将其与交错的源注释(例如)结合起来?Àlag++-g-O0-c-fverbose asm-Wa,-adhln test.cpp>test.lst
现在,我手动修改右makefile,并在生成后添加-fverbose asm
。然后我可以使用作为-alhnd
位。