嵌入式系统课程学习记录2
Makefile使用
makefile类似批处理,批量编译汇编链接
一个目录下写好Makefile(或makefile)文件,用make命令执行
一个简单的makefile
先把hello.c编译为hello.o,再编译为hello
基础:
CC = gcc
CFLAGS =
all : hello
hello: hello.o
$(CC) $(CFLAGS) hello.o -o hello
hello.o: hello.c
$(CC) $(CFLAGS) -c hello.c -o hello.o
进阶:
CC = gcc
CFLAGS =
OBJS = hello.o
all : hello
hello: hello.o
$(CC) $(CFLAGS) $^ -o $@
#$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件
hello.o: hello.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf hello *.o
运行结果:
再进阶:
CC = gcc
CFLAGS = -Wall -O2
CFILES = $(wildcard *.c )
OBJS = $(CFILES:%.c=%.o)
all : hello
hello : $(OBJS)
$(CC) $(CFLAGS) -o hello $(OBJS)
.c.o :
$(CC) -c $<
clean:
rm -rf hello *.o
结果:
不过这一段没搞懂
运行的时候是把所有.c编译成了.o
.c.o :
$(CC) -c $<