开始编写Makefile(三)Makefile的默认模式规则
1.make中建立的其他语言的规则
SCCS , RCS , ar, lex 和yacc 命令
2.为了建立一个目标,make会遍历一连串的依赖关系;这个是为 决定何处开始创建;
如果没有找到目标文件;make按照有限顺序查找源文件
3.了了生成目标文件,它首先查找带有(*.c,*.f或*.s)后缀的文件,如果一个都没有找到,它会继续寻找带*.c的后缀文件并继续搜搜;
直到找到一个源文件。如果没有找到一个源文件;make就会报告一个异常。
一、默认模式规则GUN make
%是通用匹配符即通配符
%.o:%c:
$(CC) $(CFLAGS) -c $<

二、默认的后缀规则
SUFFIXES:.o.c.s
.c.o
$(CC) $(CFLAGS) -c $<
示例:Makefile 案例文件
###############定义变量##################
CC:=gcc
CFLAGS:=-Iinclude
CFLAGS+= -c
TARGET:=bin/mymath_test
DEPEND:=obj/mymath.o
DEPEND+=obj/mymath_test.o $(TARGET):$(DEPEND)#开始执行
$(CC) -o $@ $^ #############采用模式规则编译###########
obj/%.o:src/%.c
$(CC) -o $@ $(CFLAGS) $^ #############常规规则编译#################
#obj/mymath.o:src/mymath.c
# $(CC) -o $@ $(CFLAGS) $^
#obj/mymath_test.o:src/mymath_test.c
# $(CC) -o $@ $(CFLAGS) $^
################################################################# .PHONY:clean#指定clean是虚目标
###################make clean 清除生成的文件######################
clean:
rm -fr $(TARGET) $(DEPEND)
开始编写Makefile(三)Makefile的默认模式规则的更多相关文章
- 从头开始编写项目Makefile(八):型号规则
[版权声明:转载请保留源:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 上创建的文件夹谈及.没有生产目标文件到相应的文件夹,在这里 ...
- 跟我一起写Makefile(三)
书写规则———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法. 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来 ...
- C语言的本质(37)——makefile之隐含规则和模式规则
Makefile有很多灵活的写法,可以写得更简洁,同时减少出错的可能.本节我们来看看这样一个例子还有哪些改进的余地. 一个目标依赖的所有条件不一定非得写在一条规则中,也可以拆开写,例如: main.o ...
- Makefile 隐含规则,模式规则,常见变量
隐含规则复杂的Makefile一般会使用隐含规则内的变量来简化编译处理.将隐含规则中使用的变量分成两种:一种是命令相关的,如“CC”:一种是参数相关的,如“CFLAGS”.这些变量都是大写表示. 常 ...
- Configure,Makefile.am, Makefile.in, Makefile文件
一 软件安装关于 makefile文件问题 如果拿到的工程文件中,没有Makefile文件,而只有configure.in和Makefile.am文件,我们是不能够直接进行编译的,必须根据config ...
- 使用Micrisoft.net设计方案 第三章Web表示模式
第三章Web表示模式 体系结构设计者在设计第一个作品时比较精简和干练.在第一次设计时,并清除自己做什么,因此比较小心谨慎.第二个作品是最危险的一个作品,此时他会对第一个作品做修饰和润色,以及把第一次设 ...
- make 查找的文件名顺序为:“GNUmakefile”、“makefile”、“Makefile”
默认的情况下,make会在工作目录(执行make的目录)下按照文件名顺序寻找makefile文件读取并执行,查找的文件名顺序为:“GNUmakefile”.“makefile”.“Makefile”. ...
- 简单区分VMware的三种网络连接模式(bridged、NAT、host-only)
艺搜简介 VMware在安装时默认安装了两块虚拟网卡,VMnet1和VMnet8,另外还有VMnet0.这些虚拟网卡的配置都是由Vmware虚拟机自动生成的,一般来说不需要用户自行设置. Vmware ...
- vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...
随机推荐
- js node md5模块使用问题
问题描述:md5(123456)得到的结果不是正确的. why? 问题查找: 1)安装路径问题: yarn add md5(md5模块在npmjs中显示每周download人数高达百万,有问题还这么多 ...
- AS3放大镜工具类
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Display ...
- 在springMVC的controller中获取request,response对象的一个方法
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttr ...
- java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedPropertyResolver 错误解决
1.今天在搭建SpringBoot整合 pageHelper的时候报错如下 1.1 引入依赖如下: <!-- 分页插件 --> <dependency> <groupId ...
- ASP.NET面试题130道
130道ASP.NET面试题 1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. ...
- aspnetcore 容器化部属到阿里云全过程记录
第一次写博客,作为一个全栈er,记录一下从阿里云到产品运维上线的全过程 一.阿里云上的设置 购买阿里云ECS后: 进控制台查看实例公网IP 在控制台.网络与安全->安全组,配置规则 点击进去可以 ...
- emacs手动安装、解决不能使用中文输入法
emacs的安装 emacs的下载,解压 wget http://mirrors.ustc.edu.cn/gnu/emacs/emacs-25.3.tar.gz tar -zxf emacs-25.3 ...
- 使用layui框架根据字段来设置tr行的背景色
问题来源:最近在写公司项目时使用layui遇见的问题,老板要求根据td字段来设置整行tr的背景色. 解决:一开始数据比较少的时候只是直接在页面根据js动态判断字段然后来更改背景色,结果能够成功,但是后 ...
- ubuntu 使用alias 新增删除命令del替代rm
alias del=trash #del命令别名删除文件至回收站 alias lt='ls /tmp' #lt命令显示回收站中的文件 alias cle=cleartrash #cle清除tmp文件夹 ...
- Jenkins 插件:Job Configuration History(记录job的历史更新记录)
1. 添加插件 添加完成后,Jenkins,左下,多一个菜单栏 .可以查看,job的更新记录,见下图 . 如上,End再也不用担心,有同学乱改Job ,却不知道哪里被改的情况了. 注:1)这个 ...