linux之makefile的学习(二)

linux之makefile的学习(一)贴出的一个模板的makefile的编写。模板makefile的编写简而言之以后我们可以非常方便的调用模板,不需要繁琐的修改每个makefile的内容。

下面贴出一个用命令编写的makefile,针对的是上一篇中cal计算器的makefile的编写
这里写图片描述

1.首先修改总控makefile

上一篇的模板就不贴出来了,直接上干货

include scripts/Makefile


.PHONY: all mm mc clean


all : $(Target)

mm:
    cd main && $(MAKE)
    cd add  && $(MAKE)
    cd sub  && $(MAKE)
    cd mul  && $(MAKE)
    cd div  && $(MAKE)
mc:
    cd main && $(MAKE) clean
    cd add  && $(MAKE) clean
    cd sub  && $(MAKE) clean
    cd sub  && $(MAKE) clean
    cd mul  && $(MAKE) clean 
$(Target) : mm
    @$(CC) -o  $(Target) $(Allobjs)  -lsqlite3 -lpthread

clean : mc
    @rm -rf $(Target)

嵌套执行的两种语法:

  1. cd <子目录> && $(MAKE)
  2. $(MAKE) -C <子目录>

    其实就是将函数实现的功能全部用命令一一表达出来,可以对照看一下。

    2. scripts/Makefile的编写

CC := gcc -lpthread -lsqlite3
Target := cal
Modules += main sub div mul add
Allobjs :=main/src/*.o add/src/*.o sub/src/*.o div/src/*.o mul/src/*.o 

3. 各个功能目录下的makefile的编写
这里就不把每个目录下的makefile贴出来了,大致差不多

add下的makefile

include ../scripts/Makefile

all:
    gcc -c src/add.c -o src/add.o
clean:
    rm -rf src/add.o

不参考任何资料,独立的编写一个makefile是非常重要的。

PS:
建立一个完整的项目还有许多目录需要添加,参考内核管理代码的风格

各个目录的分类参考内核的分类
include 放头文件
lib 放库文件
tools 放工具
doc 放文档
scripts 放脚本(makefile实际上就是脚本文件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值