-c 只编译不链接,仅生成目标文件(.o) 可以同时编译多个文件 如果不加-c,则会进行链接操作.
例子:
定义两个源文件fun1.c和main.c
- //fun1.c
- #include"stdio.h"
-
- void fun1()
- {
- printf("this is fun1\n");
- }
- //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’未定义的引用