-c选项在GCC中做什么

Wea*_*wda 10 c gcc gdb

有谁知道-c国旗的作用是gcc什么?

例如,有什么区别

gcc -c output0.c
vs gcc output0.c
Run Code Online (Sandbox Code Playgroud)

我知道第二个创建一个.a文件,但我不知道.a文件是做什么的.

还有什么-o做的

gcc output0.o -o output0
Run Code Online (Sandbox Code Playgroud)

只是将输出文件命名为right?

Sta*_*kER 10

-C

编译或汇编源文件,但不要链接.链接阶段根本没有完成.最终输出是每个源文件的目标文件的形式.

默认情况下,源文件的目标文件名是通过将后缀.c,.i,.s等替换为.o来实现的.无法识别的输入文件(不需要编译或汇编)将被忽略.

-o文件

将输出放在文件文件中.无论是生成什么类型​​的输出,无论是可执行文件,目标文件,汇编程序文件还是预处理C代码,这都适用.如果未指定-o,则缺省情况是将可执行文件放在a.out中,source.so中的source.suffix对象文件,source.s中的汇编程序文件,source.suffix.gch中的预编译头文件. ,以及标准输出上的所有预处理C源.

更多信息可以在GCC手册页中找到


小智 5

来自man gcc“控制输出类型的选项”部分):

...

-c 编译或汇编源文件,但不链接。链接阶段根本就没有完成。最终输出是每个源文件的目标文件的形式。

默认情况下,源文件的目标文件名是通过将后缀 .c、.i、.s 等替换为 .o 来生成的。

不需要编译或汇编的无法识别的输入文件将被忽略。

...