gcc -c:只编译不链接,仅生成目标文件

-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’未定义的引用
新战场:https://blog.csdn.net/Stephen___Qin
原文地址:https://www.cnblogs.com/Stephen-Qin/p/12718288.html