什么是gcc命令中的.o文件?

时间:2018-06-27 05:34:10

标签: c makefile

gcc -o file1 file1.o file2.o file3.o

我对C没有太多经验,并且在我们系统上的Makefile中发现了上述内容。

在这种情况下,什么是.o文件,什么是file1.o?与file1有关系吗?

3 个答案:

答案 0 :(得分:0)

-o文件

将输出放置在文件file中。无论生成何种输出,无论是可执行文件,目标文件,汇编文件还是预处理的C代码,这都适用。

由于只能指定一个输出文件,因此在编译多个输入文件时使用'-o'是没有意义的,除非您要生成一个可执行文件作为输出。

此处生成的可执行文件为file1

如果未指定'-o',则默认值是将可执行文件放置在a.out中,将source.suffix的目标文件放置在source.o中,将其汇编文件放置在source.s中,并将所有预处理的C源代码放置在标准输出上。

.o文件是C代码文件的编译目标文件。

此处已打出-> GCC Command-Line Options

答案 1 :(得分:0)

他们是object files

引用gcc online manual

  

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

答案 2 :(得分:0)

  

以.o结尾的文件是目标文件。在将每个源文件链接到最终可执行文件之前,编译器会为每个源文件创建一个目标文件。

来自this question