2.2 Makefile 入门例子(二)

     下面我们通过几个例子深入一点点,学习一下Makefile

 

 

     例:1

prwk:main.o mytool1.o mytool2.o
 gcc -o prwk main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
 gcc -c main.c
mytool1.o:mytool1.c mytool1.h
 gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
 gcc -c mytool2.c

上边个例子是一个最基本的Makefile例子,按照顺序执行,一行一行很清楚,第一行是规则行,第二行是动作行。

 

    例:2

 

all:prwk clean
prwk:main.o mytool1.o mytool2.o
 gcc -o prwk main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
 gcc -c main.c
mytool1.o:mytool1.c mytool1.h
 gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
 gcc -c mytool2.c
clean :
 rm *.o

稍微加了个参数,当执行   make - clean 命令的时候就会删除当前目录的所有 .o的文件

 

    例:3

OBJECT=main.o mytool1.o mytool2.o

all:prwk clean
prwk:main.o mytool1.o mytool2.o
 gcc -o prwk $(OBJECT)
main.o:main.c mytool1.h mytool2.h
 gcc -c main.c
mytool1.o:mytool1.c mytool1.h
 gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
 gcc -c mytool2.c
clean :
 rm $(OBJECT)

例3则定义了一个变量,注意变量名一定要大写,用变量代替了长长地字符

 

 

    例:4

#
OBJECT=main.o mytool1.o mytool2.o

all:prwk clean
prwk:main.o mytool1.o mytool2.o
 gcc -I /home/user00/include  -o prwk $(OBJECT)
main.o:main.c
 gcc -I /home/user00/include -c main.c
mytool1.o:mytool1.c
 gcc  -I /home/user00/include  -c mytool1.c
mytool2.o:mytool2.c
 gcc  -I /home/user00/include -c mytool2.c
clean :
 rm $(OBJECT)

注意变化,呵呵,在编译的时候设置include的路径

 

 

   例:5

#
OBJECT=main.o mytool1.o mytool2.o
INCLUDE=-I /home/user00/include
all:prwk clean
prwk:main.o mytool1.o mytool2.o
 gcc $(INCLUDE)  -o prwk $(OBJECT)
main.o:main.c
 gcc $(INCLUDE)  -c main.c
mytool1.o:mytool1.c
 gcc $(INCLUDE)  -c mytool1.c
mytool2.o:mytool2.c
 gcc $(INCLUDE)  -c mytool2.c
clean :
 rm $(OBJECT)

再设置一个变量,省去长长的字符串

 

    例:6

GCC=gcc
OBJECT=main.o mytool1.o mytool2.o
INCLUDE=-I /home/user00/include
all:prwk clean
prwk:main.o mytool1.o mytool2.o
 $(GCC) $(INCLUDE)  -o prwk $(OBJECT)
main.o:main.c
 $(GCC) $(INCLUDE)  -c main.c
mytool1.o:mytool1.c
 $(GCC) $(INCLUDE)  -c mytool1.c
mytool2.o:mytool2.c
 $(GCC) $(INCLUDE)  -c mytool2.c
clean :
 rm $(OBJECT)

 

就是一个个字符串的替换,替来替去,呵呵,由间入难,满满来~~~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值