hello.c
#include <stdio.h>
int fun();
int main()
{
fun();
printf("hello world\n");
return 0;
}
gcc -o hello.o -c hello.c
只编译不链接没有问题。
链接成可执行文件时候:hello.c:(.text+0xa): undefined reference to `fun'
-c 表示只编译
-o是输出文件
最终版:
.SUFFIXES:.c .o //.c和.o建立关联
CC=gcc
SRCS=hello.c\
add.c //同时编译两个.c文件
OBJS=$(SRCS:.c=.o)//ORJS=hello.o add.o
EXEC=hello
start: $(OBJS) //依赖hello.o add.o
$(CC) -o $(EXEC) $(OBJS)
@echo '----------------ok------------'
.c.o:
$(CC) -o $@ -c $< //自动根据$(OBJS) 中.o的数量循环编译, 直到编译完所有的.c文件
clean:
rm -f $(OBJS)