分享
 
 
 

规则+工程:一种比较灵巧通用的Makefile写法

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

规则+工程:一种比较灵巧通用的Makefile写法

整理项目的makefile,顺便对其写法简单归纳整理如下。这种写法乍一看让人比较晕,定义的规则和宏比较多,貌似有点累赘。

但是如果项目比较大的话,这种写法有利于统一项目生成规则(相同类型的文件都用相同的处理规则),减少makefile编写的工作量(不需要自己编写规则,只需要提供文件列表),同时也减少了出错的概率。比较规范和灵活通用,值得借鉴。

这种写法把Makefile分为通用规则定义文件和工程定义文件两部分

------------------------------------------------------------

[com.mk通用规则定义文件]

CC = gcc

#.SUFFIXES定义符合编译规则的扩展文件类型,.c/.h/.cxx已经被默认支持。

#示例增加了.d文件(Pro*C文件.pc也可以如此处理)

.SUFFIXES: .d

#定义相同类型文件对应的统一规则

.c.o: #定义如何从.c生成.o的规则

@echo '--'$*.c #写这一行,可以打印出被处理的文件

$(CC) -o $*.o -c $*.c # 生成.o的语句

.d.c: #定义如何从.d文件生成.c文件的规则

@echo '--'$*.d #写这一行,可以打印出被处理的文件

cp $*.d $*.c #生成.c文件的语句

.d.o: #定义如何从.d文件生成.o文件的规则

@echo '--'$*.d #写这一行,可以打印出被处理的文件

cp $*.d $*.c #因为本例中是要调用c编译器,所以先生成.c文件

$(CC) -o $*.o -c $*.c #再从.c文件生成.o

#定义编译入口

all:build

# 下面这句定义了需要从哪些源文件(CFILE/DFILE所定义的列表)

#和什么规则(.c=.o即从.c生成.o; .d=.o表示从.d生成.o)生成目标文件

ALLOBJS =$(CFILE:.c=.o) $(DFILE:.d=.o)

#编译命令,表示先编译目标对象,再输出可执行文件

$(EXE):$(ALLOBJS)

$(CC) -o $@ $(ALLOBJS)

#清除语句,同样是利用了规则定义,

clean:

rm -f $(DFILE:.d=.o) $(DFILE:.d=.c)

rm -f $(CFILE:.c=.o)

rm -f $(EXE)

------------------------------------------------------------

[makefile代码目录下的工程定义文件]

#定义输出目标名称

EXE=testexe

#以下只需要提供文件列表和定义编译目标

CFILE=m.c #定义C源文件列表,可以有多个

DFILE=testd.d teste.d #定义D源文件列表,可以有多个

#给编译入口赋值

build: $(EXE)

COMMPATH=./ #指定模版所在路经

include $(COMMPATH)/com.mk #包含通用模版文件,make会调用通用模版里的规则,进行编译

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有