makefile 需要用到 常用命令、shell、正则表达式、gcc,比较综合。
今天写了一个做一个记录,以后系统总结一下。
目录结构:russia---------include、src、mian.c、Makefile
include-----------russia.h
src-----------------fun1、fun2、fun3、fun4、fun5...Makefile
Makefile 1:
subobj = ./src/fun1.o ./src/fun2.o ./src/fun3.o ./src/fun4.o ./src/fun5.o ./src/fun6.o
all:main.o SUBDIR
gcc -o main main.o $(subobj)
main.o:main.c
gcc -c main.c
SUBDIR:
make -C src
clean:
rm main.o *.o
Makefile 2:
all:fun1.o fun2.o fun3.o fun4.o fun5.o fun6.o
fun1.o:fun1.c
gcc -c fun1.c
fun2.o:fun2.c
gcc -c fun2.c
fun3.o:fun3.c
gcc -c fun3.c
fun4.o:fun4.c
gcc -c fun4.c
fun5.o:fun5.c
gcc -c fun5.c
MakeFile例子 OBJS = main.o child.o CC = gcc FLAGS = -g -O -Wall CSOURCE = main.c child.c HSOURCE = btree.h btree : $(OBJS) $(CC) $(FLAGS) -o $@ $^ %.o : %.c $(CC) $(FLAGS) -o $@ -c $< clear : rm *.o btree
注意的问题:
1、只编译不链接,用gcc -c不用-o
2、全局变量放在 .c文件中, ,h中添加外部变量,避免重复声明问题。