一些通用的Makefile文件模板.docx
《一些通用的Makefile文件模板.docx》由会员分享,可在线阅读,更多相关《一些通用的Makefile文件模板.docx(14页珍藏版)》请在优知文库上搜索。
1、写在前面对于WindOWS下开发,很多IDE都集成了铜译器,如ViSUaIStUdi0,提供了“一裸编洋,编码完成后只需一个操作即可完成痂洋、健接、生成目标文件.1.jnUX开发与WindoWS不同.UnUX卜一般用的的gccg+漏译器,如果是开发ARM下的1.inUX程庠,还需用到arm-Iinuxgccarm-HnUX-g+交叉编评器。1.inux下也可以实现一域编译功能,此时需要一个编译脚本Makefi1.e-.Makefi1.e可以手动编写,也可以借助自动化构建工具(如sconsCMake)生成“手动编写Makefi1.e是1.inux和Windows程序员的区别之一,一般地一个通用的
2、Makefi1.e能够适合大部分1.inUX项目程序.个Makefi1.e模板2.1 耀译可执行文件Makefi1.eversion-.eecc=gCCDEBUG-OUSEeDEBUGCF1.AGS=Wa1.1.SOURCES-$(wiIdcard./source/4.c)INC1.UDES=I./inc1.ude1.IBNAMES-Ifuna-IfunsoO3三S(patsubst%.C,%.o,S(SOURCES)TARGET=app1.inksJ(TARGET):$(OBD)Ikdir-output(CC)$(08)J(IIBPATH)KIIB-NAMES)ooutput/$(TARGE
3、T)$(VERSION)rf$(0B3)compi1.e%.o:%.c$(CC)S(INCIUOS)“DEBUG)-cJ(CF1.AGS)$o.PHONY:c1.eanc1.ean:ChoRemove1.inkedandCOmPiICdfi1.es*r-rfS(OBJ)S(TARGET)output【要点说明】1程序版本开发谓试过程可能产生多个程序版本,可以在目标文件后(前)增加版本号标识。VERSION1.0S(CC)$(0BJ)$(1.I8_PATH)$(1.IB_NAMES)-OOUtPUt/(TARGET)$VERS1.ON)2编译器选界1.inux卜,为gccg+:arm下为arm-
4、IinUX-gcc:不同CPU厂商提供的定制交叉编洋器名称可能不同,如HiSiIiConarm-hisiv300-1.inux-gcc”.cc=gcc【3】宏定义开发过程,特殊代码一般增加宏条件来选择是否漏洋,如调试打印输出代码.-D是标识,后面接若的是“宏DEBUG-DUSE_0EBU6【4】译选项可以指定漏洋条件,如显示警告(-Wa1.1.),优化等级JO).CF1.AGS-Wa1.1.-O5源文件指定源文件目的路径,利用“Wi1.dCad”获取路径下所有依敕源文件.SOURCES-(wi1.dcard./source/*.c)【6】头文件包含依赖的头文件,包括源码文件和厚文件的头文件.I
5、NC1.UDES=-I./inc1.ude【7】库文件名称指定库文件名称,库文件有固定格式,伸态摩为IibXXX.a;动态库为IibXXXSO,指定库文件名称只需写“XXX”部分,1.IBeNAMES-Ifun_a-Ifun_so【8】库文件路径指定依他摩文件的存放路径。注愈如果引用的是动态库,动态库也许拷贝到/Iib或者”/usr/1.ib”目录下,执行应用程序时,系统默认在该文件下索弓I动态库.IIB-PATH-1./Iib19目标文件调用patsubst将源文件(c)编译为廿标文件。.OBJ=S(patsubst%.c,X.o1.(SOURCES)rio执行文件执行文件名称TARGET-
6、app11编译x.o:%.c$(CC)$(INC1.UDES)(DEBUG)$(CF1.AGS)$-O$112俄接可创建一个output”文件夹存放目标执行文件。链接完输出目标执行文件,可以删除编译产生的临时文件.。).S(TARGET):$(0B3)kdir-poutput$(Ce)$(083)S(1.I8.PATH)$(1.IB_NAMES)-Ooutput/$(TARGET).$(VERSION)rE-rf$(0BJ)r13清除编译信息执行makec1.ean除嫡泽产生的临时文件。.PHONYrc1.eanc1.ean:echo,Remove1.inkedandcompi1.edfi1.
7、es*rmrf$(0BJ)(TARGT)output2.2 编译的态库Makefi1.eVERSION-CC三gccDEBUG-CF1.AGS-Wa1.1.ARarARF1.AGS=rvSOURCES-wi1.dcard.c)INC1.UDES=-I.IIBNAMES-O3$(pat$ub$t%.C9%.o,!(SOURCES)TARGET=1.1.bfun-att1.ikJ(TARGET):$(OBD)Ikdir-output$(AR)J(ARFIAGS)OutputZJ(TARGET)S(VERSION).a$(0BJ)rm-rfS(OBJ)compi1.eX-o:%.c$(CC)$(IN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一些 通用 Makefile 文件 模板