2
是否可以在gcc/g ++/clang/clang ++的一次命令中同时生成目标文件和源文件?怎么样?用gcc/clang生成程序集和目标文件:可能吗?怎么样?
我需要通过很多其他的选择,所以我想,以避免重复他们在2个独立的命令:
gcc -S test.cC# produce assembly
gcc -c test.cC# produce object file
是否可以在gcc/g ++/clang/clang ++的一次命令中同时生成目标文件和源文件?怎么样?用gcc/clang生成程序集和目标文件:可能吗?怎么样?
我需要通过很多其他的选择,所以我想,以避免重复他们在2个独立的命令:
gcc -S test.cC# produce assembly
gcc -c test.cC# produce object file
,您可以给-save-temps
选项GCC:它会留下所有的临时文件(包括.s
文件)在当前目录(与clang
作品也):
gcc -c --save-temps test.cc
或使用-Wa,-aln=test.s
选项:
gcc -c -Wa,-aln=test.s test.c
从gcc
文档:
-Wa,option
通
option
作为一个选项,以汇编。如果选项包含逗号,则在逗号处将其分割为多个选项。
从as
文档:
-a[cdghlmns]
打开列表,在任何不同的方式:
-al
包括装配- 省略形式处理
[...]
您可以合并这些选项;例如,使用
-aln
进行汇编列表,而不进行表单处理。
铛具有应当被关闭的综合汇编(How to switch off LLVM's integrated assembler?):
clang++ -c -no-integrated-as -Wa,-aln=test.s test.c
看来,'铛-c --save-临时工test.cc'使用不同的汇编不仅仅是'铛-S'或'clang -c'。并且该汇编程序向正在添加到clang的功能发出错误消息...“clang -S”和“clang -c”都不会产生该错误。所以我不知道我的修改是错误的还是需要对环境做一些调整。我在Windows上,交叉编译到ARM-Linux。 –