C编程基础:为什么用gcc

时间:2015-09-24 20:08:30

标签: c gcc compiler-construction object-files

我写了一个C程序并用.c扩展名保存。 然后我用gcc编译但之后我只看到我的.c文件和.exe文件。该计划运行完美。但是我在理论上学到的.o文件在哪里?是否已被覆盖到.exe并且所有这些都是由gcc在步骤中完成的? (预处理,编译,组装和链接)

我正在运行Debian的虚拟机上。

4 个答案:

答案 0 :(得分:2)

默认情况下,gcc只需一步即可编译和链接。要获取.o文件,您需要编译而不进行链接。这是通过-c选项完成的。

假设您要分别编译两个文件,然后链接它们。您将执行以下操作:

gcc -c file1.c      # creates file1.o
gcc -c file2.c      # creates file2.o
gcc -o myexe file1.o file2.o

如果您只想要预处理器的输出,请使用-E选项和-o来指定输出文件:

gcc -E file1.c -o file1-pp.c    # creates file1-pp.c

答案 1 :(得分:1)

分两步编译和链接:

gcc -Wall -c tst.c
gcc tst.c -o tst

在第一个命令之后,您将获得一个.o文件。

答案 2 :(得分:1)

如果您执行类似gcc test.c之类的操作,那么它只生成可执行文件(仅用于编译,请参阅-c选项)

答案 3 :(得分:0)

以下是使用gcc编译以从C文件创建.o文件的步骤:

http://www.gnu.org/software/libtool/manual/html_node/Creating-object-files.html