- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GNU Make
培训目的
通过本课程学习,达到了解GNU Make工作原理,能独立编写简单Makefile进行程序编译的目的。
内容纲要
GNU Make概述
关于Makefile
编译开关
讨论
GNU Make概述
GNU Make是一个命令工具,通过在shell提示符下输入make命令调用。不过在执行make之前,需要一个命名为Makefile的特殊文件来告诉make需要做什么,该怎么做。通常,make工具被用来进行工程编译和程序链接。
内容纲要
GNU Make概述
关于Makefile
编译开关
讨论
关于Makefile
简介
示例
变量
隐藏规则
假象目的
函数
关于Makefile-简介
Makefile告诉make以何种方式编译源代码和链接程序。Makefile有自己的书写格式、关键字、函数。像C语言有自己的格式、关键字和函数一样。
一个简单的Makefile描述规则组成:
目标 : 依赖文件
[TAB]命令
关于Makefile-示例
HelloWorld: main.o common.o
gcc -Wall -o HelloWorld main.o common.o
main.o:main.c
gcc -c -Wall -o main.o main.c
common.o:common.c common.h
gcc -c -Wall -o common.o common.c
关于Makefile-变量
OBJS = main.o common.o
CC = gcc
CFLAGS = -Wall
HelloWorld: $(OBJS)
$(CC) $(CFLAGS) -o HelloWorld $(OBJS)
main.o:main.c
$(CC) -c $(CFLAGS) -o main.o main.c
common.o:common.c common.h
$(CC) -c $(CFLAGS) -o common.o common.c
OBJS = main.o common.o
CC = gcc
CFLAGS = -Wall
HelloWorld: $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
main.o:main.c
$(CC) -c $(CFLAGS) -o $@ $
common.o:common.c common.h
$(CC) -c $(CFLAGS) -o $@ $
关于Makefile-隐藏规则
OBJS = main.o common.o
CC = gcc
CFLAGS = -Wall
HelloWorld: $(OBJS)
$(CC) $(CFLAGS) -o HelloWorld $(OBJS)
增加依赖关系:
OBJS = main.o common.o
CC = gcc
CFLAGS = -Wall
HelloWorld: $(OBJS)
$(CC) $(CFLAGS) -o HelloWorld $(OBJS)
depends : main.c common.c
gcc -MM main.c common.c depends
-include depends
关于Makefile-假象目的
OBJS = main.o common.o
CC = gcc
CFLAGS = -Wall
all: $(OBJS)
$(CC) $(CFLAGS) -o HelloWorld $(OBJS)
.PHONY : clean
clean :
-rm *.o *.exe
关于Makefile-函数
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
CC = gcc
CFLAGS = -Wall
HelloWorld: $(OBJS)
$(CC) $(CFLAGS) -o HelloWorld $(OBJS)
.PHONY : clean
clean :
-rm *.o *.exe
内容纲要
GNU Make概述
关于Makefile
编译开关
讨论
编译开关
-c 编译成目标文件,不链接
-o 目标文件名称
-I #include xxxx.h
-D 宏定义
-W 编译警告控制,要求使用-Wall打开所有警告开关
gcc -c -Wall -ID:\work\tempproject\include -D ABC=3 -o main.o main.c
内容纲要
GNU Make概述
关于Makefile
编译开关
讨论
讨论
练习:
1.要求编写一个Makefile用于将a.c、b.c、c.c编译生成一个autod
您可能关注的文档
最近下载
- 侵犯著作权案谅解书.docx VIP
- 《康复评定技术》课件——第十一章 步态分析技术.ppt VIP
- 建筑施工高处作业安全技术规范 JGJ80-2016培训.pptx VIP
- 人工智能在心理健康与咨询中的应用与辅助技术.pptx VIP
- 全国初中物理竞赛试题(八年级上):第2讲—声现象(解析版).pdf VIP
- 河南省驻马店市“逐梦计划”环际大联考2025-2026学年高一上学期阶段考试(一)英语含答案.pdf
- 让是VS不是美德辩论赛 反方辩词一辩、二辩、三辩、四辩发言稿.docx VIP
- 国网甘肃招聘考试真题2025.docx VIP
- 股权投资合作协议.doc VIP
- 从《家谱》看改土归流后土司时期的土著居民家族建构.pdf VIP
原创力文档


文档评论(0)