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

-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’未定义的引用

 

posted @ 2020-04-17 10:39  心媛意码  阅读(791)  评论(0编辑  收藏  举报