初学makefile

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中添加外部变量,避免重复声明问题。

posted on 2016-07-27 19:22  紫色年华  阅读(183)  评论(0编辑  收藏  举报

导航