-c选项在GCC中做什么
有谁知道-c
标志在gcc
做了什么?
例如,有什么区别
gcc -c output0.c vs gcc output0.c
我知道第二个创建.a
文件,但我不是.a
文件。
还有-o
做什么
gcc output0.o -o output0
只是将输出文件命名为right?
-C
编译或汇编源文件,但不要链接。 链接阶段根本没有完成。 最终输出是每个源文件的目标文件的forms。
默认情况下,源文件的目标文件名是通过将后缀.c,.i,.s等替换为.o来实现的。 无法识别的输入文件(不需要编译或汇编)将被忽略。
-o文件
将输出放在文件文件中。 无论是生成什么类型的输出,无论是可执行文件,目标文件,汇编程序文件还是预处理C代码,这都适用。 如果未指定-o,则缺省情况是将可执行文件放在a.out中,source.so中的source.suffix对象文件,source.s中的汇编程序文件,source.suffix.gch中的预编译头文件。 ,以及标准输出上的所有预处理C源。
更多信息可以在GCC手册页中找到
-c将指示gcc仅将源文件编译为.o(对象)文件,但不调用链接器。
对于包含许多.c文件的项目,通常会先将所有.c文件编译为.o文件,然后将所有文件与库链接在一起。
-c编译或汇编源文件,但不链接。 链接阶段根本没有>完成。 最终输出是每个源文件的目标文件的forms。
By default, the object file name for a source file is made by replacing the suffix >.c, .i, .s, etc., with .o. Unrecognized input files, not requiring compilation or assembly, are ignored.
来自man gcc
:
…
-c编译或汇编源文件,但不链接。 链接阶段根本没有完成。 最终输出是每个源文件的目标文件的forms。
默认情况下,源文件的目标文件名是通过将后缀.c,.i,.s等替换为.o来实现的。
无法识别的输入文件(不需要编译或汇编)将被忽略。
…