一个通用的makefile写法,自动推导文件的依赖关系

本文介绍如何编写一个通用的makefile,它能自动推导并处理多个cpp源文件目录及头文件目录的依赖关系。通过定义变量如TARGET、INC、VPATH、SRC_PATH等,结合makefile内置函数,实现自动查找cpp文件,生成object文件,并构建目标可执行文件。此外,还包含了清理中间文件的规则。
摘要由CSDN通过智能技术生成

  今天看了一天的makefile的写法,东拼西凑,好不容易写出了一个makefile,颇有成就感,记录下来,以备温习之用。

  假设有两个头文件目录 header1,header2;两个cpp文件目录,src1,src2,一个lib目录

写一个完整的makefile步骤如下:

1 定义可执行文件的名称

TARGET = MyPro

2 指定此编译工程所要使用的头文件所在的目录

INC = -I. -Iheader1 -Iheader2

3 指定cpp文件所在的目录

VPATH = .:src1:src2

4 指定所有的cpp文件

   SRC_PATH = $(foreach dir,$(subst :, ,$(VPATH)),$(wildcard $(dir)/,*.cpp))

解释:

foreach,subst,wildcard为makefile的内置函数,其中wiilcard函数为字符串连接函数,把函数中的两个参数连接成一个。subst是字符串替换函数,在此句中意思是把VPATH变量中的冒号替换成空格。foreach函数,就是把subst函数的返回值,以空格为分隔符,循环取值赋给

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值