Linux 什么';这是gcc的含义'-c';和gcc'-o';?
当我创建makefile时,我写了Linux 什么';这是gcc的含义'-c';和gcc'-o';?,linux,gcc,makefile,putty,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。 它们之间的区别是什么?这些选项的功能非常不同: -c告诉GCC将源文件编译成.o对象文件。如果没有该选项,它将默认编译代码并将其链接到一个完整的可执行程序中,只有同时为其提供所有.c文
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。
它们之间的区别是什么?这些选项的功能非常不同:
告诉GCC将源文件编译成-c
对象文件。如果没有该选项,它将默认编译代码并将其链接到一个完整的可执行程序中,只有同时为其提供所有.o
文件时,该程序才有效。要单独编译文件以便以后可以链接,您需要.c
-c
设置GCC生成的输出文件的名称。在链接对象文件以生成完整程序时使用它,默认输出文件名为-o
。如果不希望程序被调用a.out
,可以使用a.out
指定不同的名称-o