Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 为目标生成程序集_Cmake - Fatal编程技术网

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
,然后执行
使MyTarget

CMake为汇编程序和预处理器输出内置目标。对于名为
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”即可生成我要查找的程序集。如何将其与交错的源注释(例如)结合起来?Àla
g++-g-O0-c-fverbose asm-Wa,-adhln test.cpp>test.lst
现在,我手动修改右makefile,并在生成后添加
-fverbose asm
。然后我可以使用
作为-alhnd
位。