gcc'-c'和gcc'-o'的含义是什么?

时间:2017-04-02 04:43:16

标签: linux gcc makefile putty

当我创建makefile时,我写了

test: main.o 1.o
  gcc -o test main.o 1.o

main.o: main.c a.h
  gcc -c main.c

1.o: 1.c a.h
  gcc -c 1.c

但我不知道为什么我在第一行使用-o而在第二行第三行使用-c。 它们之间的区别是什么?

1 个答案:

答案 0 :(得分:3)

这些选项做了很多不同的事情:

  • -c告诉GCC将源文件编译成.o目标文件。如果没有该选项,它将默认编译并将代码链接到一个完整的可执行程序中,只有在同时为其提供所有.c文件时才能运行。要单独编译文件以便以后可以链接,您需要-c
  • -o设置GCC生成的输出文件的名称。您在链接目标文件以创建完整程序时使用它,默认输出文件名为a.out。如果您不希望调用您的程序a.out,则可以使用-o指定其他名称。