- 1、本文档共217页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 典型的设定目标 设定目标也可以用来描述一些其他的动作。例如,想把中间文件和可执行文件删除,可以在 makefile 里设立这样一个规则:clean: $rm *.o exec_file 前提是没有其它的规则依靠这个 ‘clean’ 目的,它将永远不会被执行。 但是,如果明确的使用命令 ‘make clean’ , make 会把这个目的做为它的主要目标,执行那些 rm 命令 * Makefile中的函数 (Functions) 用来计算出要操作的文件、目标或者要执行的命令 使用方法 $(function arguments) 典型的函数 $(subst from, to, text) :替换字符串 $(subst ee, EE, feet on the street) 相当于`fEEt on the strEEt $(patsubst pattern, replacement, text) $(patsubst %.c,%.o, x.c.c bar.c) 相当于`x.c.o bar.o‘ $(wildcard pattern) $(wildcard *.c) objects := $(wildcard *.o) * Makefile中的条件语句 conditional-directive text-if-true endif or conditional-directive text-if-true else text-if-false endif * 四种条件语句 ifeq...else...endif ifneq…else…endif ifdef…else…endif ifndef...else…endif * 带条件的makefile举例 sum: main.o sum.o gcc –o sum main.o sum.o main.o: main.c sum.h gcc –c main.c #deciding which file to compile to create sum.o ifeq ($(USE_SUM), 1) sum.o: sum1.c sum.h gcc –c sum1.c –o $@ else sum.o: sum2.c sum.h gcc –c sum2.c –o $@ endif * 作业:分析makefile # Makefile to compare sorting routines BASE = /home/blufox/base CC = gcc CFLAGS = -O –Wall EFILE = $(BASE)/bin/compare_sorts INCLS = -I$(LOC)/include LIBS = $(LOC)/lib/g_lib.a \ $(LOC)/lib/h_lib.a LOC = /usr/local OBJS = main.o another_qsort.o chk_order.o \ compare.o quicksort.o $(EFILE): $(OBJS) @echo “linking …” @$(CC) $(CFLAGS) –o $@ $(OBJS) $(LIBS) $(OBJS): compare_sorts.h $(CC) $(CFLAGS) $(INCLS) –c $*.c # Clean intermediate files clean: rm *~ $(OBJS) * GNU Package的典型安装 FAQ 0039 @ smth 下载源代码包foo-1.0.tar.gz tar xvzf foo-1.0.tar.gz cd foo-1.0 ./configure make (su) make install 问题1:配置脚本configure是怎么生成的? 问题2:configure脚本怎么知道该如何生成Makefile 幕后英雄—— GNU Auto Tools: autoconf, automake, libtool, autoscan, autoheader…… * 编译与安装集成工具? GNU Auto Tools是上个世纪90年代开始发展起来的一系列辅助开发、打安装包的自动化工具 各种工具分别开发,但是协同工作的很好。比如autoconf, automake, libtool等等 * Hello World创建步骤 1. hello.c #include stdio.h int mai
您可能关注的文档
- 穿针引线-学针法.doc
- 窗帘盒制作与安装技术交底记录.doc
- 立体几何探索性问题.doc
- 立体几何求体积.doc
- 立体字母设计.ppt
- 立德树人-从做好班主任工作开始-精选资料.doc
- 立德树人-增强德育工作针对性和实效.doc
- 立德树人理念下班主任育人策略探析.doc
- 立方和与立方差练习题-2.doc
- 立方根知识点及习题.doc
- 2025年春新北师大版八年级物理下册全册课件.pptx
- 2025年春新北师大版八年级物理下册全册教学课件.pptx
- 2025年秋季新北师大版八年级上册物理全册教学课件.pptx
- 2025年秋季新人教版九年级上册化学全册课件.pptx
- 2025年新人教版八年级上册物理全册课件.pptx
- 2025年秋季新人教版九年级上册化学全册教学课件(新版教材).pptx
- 新人教版七年级上册英语全册课件(2025年新版教材).pptx
- 锂离子电池前驱体磷酸铁合成方法研究现状及展望.docx
- 2024年东盟石油和天然气更新报告(英文版)-东盟.docx
- DB3209_T 1207.2-2022 建设工程档案管理 第二部分:房屋建筑工程文件归档和档案移交范围.docx
文档评论(0)