- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 Makefile实验 提纲 实验目的 实验原理 实验内容 实验小结 习题与思考题 实验目的 了解Makefile的概念和构成 学会编写Makefile 会使用GNU make编译一个或者多个文件 Makefile的规则 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。 Makefile的基本结构 目标 --- 需要由 make 工具创建的项目,通常是目标文件和可执行文件 。 依赖 ---要创建的项目依赖于哪些文件 命令 ---创建每个项目时需要运行的命令 target : dependency ... ??????????? command ... Makefile变量 #?Define?macros?for?name?of?compiler CC?=?gcc #?Define?a?macr?o?for?the?CC?flags CCFLAGS?=??-g? // gcc指令的选项设置 #?A?rule?for?building?a?object?file test.o:?test.c?test.h $(CC)?-c?$(CCFLAGS)?test.c Makefile主要预定义变量及隐含规则 预定义变量及其含义 CC CCFLAGS …… GNU?make?支持两种类型的隐含规则: 后缀规则(Suffix?Rule) ?模式规则(pattern?rules) 实验内容--使用命令编译程序 使用命令编译程序 $(CC) $(CFLAGS) hello.o -o hello hello.o: hello.c $(CC) $(CFLAGS) -c hello.c -o hello.o 实验内容--使用预定义变量 $(CC) $(CFLAGS) $^ -o $@ hello.o: hello.c $(CC) $(CFLAGS) -c $ -o $@ 实验内容--使用预定义变量对多个c文件编译 all : hello hello: hello1.o hello2.o $(CC) $(CFLAGS) $^ -o $@ hello1.o: hello1.c $(CC) $(CFLAGS) -c $ -o $@ hello2.o: hello2.c $(CC) $(CFLAGS) -c $ -o $@ 使用wildcard对多个.c文件编译 wildcard’函数的一个功能是找出目录中所有的’.c’文件: $(wildcard *.c)????? SOURCES = $(wildcard *.c) ?? 这行会产生一个所有以 .c 结尾的文件的列表,然后存入变量 SOURCES 里。当然你不需要一定要把结果存入一个变量。 使用wildcard对多个.c文件编译 CC = gcc CFLAGS = -Wall -O2 /* -wall:生成所有级别警告信息, -O2:比-01进行更多的代码优化*/ CFILES = $(wildcard *.c ) OBJS = $(CFILES:%.c=%.o) all : hello hello : $(OBJS) $(CC) $(CFLAGS) -o hello $(OBJS) .c.o : 思考与习题 工程中多级目录中存在着多个makefile时,编译的顺序如何? 如果要编译生成的文件能够在EELIOD实验平台上面使用,应该怎么对makefile修改? 在线教务辅导网: 更多课程配套课件资源请访问在线教务辅导网
您可能关注的文档
- 客户关系管理实用教程 第2版 周贺来 第03章 客户关系识别、开发与分级新.PPT
- 客户关系管理实用教程 第2版 周贺来 第04章 客户满意与客户忠诚管理新.PPT
- 客户关系管理实用教程 第2版 周贺来 第08章 客户服务中心及其应用新.PPT
- 客户关系管理实用教程 第2版 周贺来 第09章 客户关系管理软件系统介绍新.PPT
- 客户关系管理实用教程 第2版 周贺来 第11章 客户关系管理战略及其实施新.PPT
- 客户关系管理实用教程 第2版 周贺来 第12章 典型行业CRM的应用与实例分析新.PPT
- 客源国 地区 概况 第2版 周凤杰 第1章第1节日本新.ppt
- 客源国 地区 概况 第2版 周凤杰 第1章第2节韩国新.ppt
- 客源国 地区 概况 第2版 周凤杰 第1章第4节马来西亚新.ppt
- 客源国 地区 概况 第2版 周凤杰 第1章第5节新加坡新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验二 八段码实验新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验七 LCD控制器新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验七 驱动程序结构实验新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验三 bootloader实验新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验三 定时器新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验十 USB驱动配置实验 新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验十二 串口通讯实验新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验十六 嵌入式数据库移植实验新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验十三 GPS和GSM通信实验 新.ppt
- 嵌入式系统实验教程 鲍喜荣 实验十四 Webserver实验新.ppt
原创力文档


文档评论(0)