-c 只编译不链接,仅生成目标文件(.o) 可以同时编译多个文件 如果不加-c,则会进行链接操作.
例子:
定义两个源文件fun1.c和main.c
//fun1.c #include"stdio.h" void fun1() { printf("this is fun1 "); }
//main.c #include"stdio.h" int main() { fun1(); fun2(); return 0; }
如果执行gcc -c fun1.c main.c则会生成fun1.o,main.o,但不会报错.
若执行gcc fun1.c main.c,则会发生链接,报错:
在函数‘main’中: main.c:(.text+0x14):对‘func2’未定义的引用