[笔记]makefile编写
makefile的隐含规则默认处理第一个目标
函数:wildcard可以进行文本匹配
patsubst内容替换
变量:
$@代表目标
$^ 代表全部依赖
$< 第一个依赖
$? 第一个变化的依赖
@在规则前代表不输出给条规则指令
-在规则前代表该规则报错仍继续执行
实例:

SrcFiles=$(Wildcard *.c):定义宏SrcFiles,Wildcard函数匹配当前目录下所有后缀为.c的文件,SrcFiles内容为匹配结果
若当前目录下有这些文件,则这条语句等价于:
SrcFiles = access.c fock_fd.c lseek.c mmap.c orphan.c pipe_ps.c rename.c stat.c trancate.c wait.c filecount.c fork.c ls_ls.c openmax.c pipe.c read.c/ sigchildcatch.c text.c vfork.c
ObjFiles=$(patsubst %.c,%,$(SrcFiles)):定义宏ObjFiles,patsubst函数将宏SrcFiles中.c文件替换成去掉.c的字符,并赋值给ObjFiles。等价于:
ObjFiles=access filecount fock_fd fork lseek ls_ls mmap openmax orphan pipe pipe_ps read rename sigchildcatch stat text trancate vfork wait
app:$(ObjFiles):规则,格式:目标(app):依赖( $(ObjFiles):ObjFiles中的每一项)
%:%.c:规则
gcc $< -o $@ # -std=c99 -g:上一条规则的命令,$<代表目标,$@代表依赖的第一项,#代表其后的是注释
.PHONY:clean:.PHONY标注clean为伪目标
clean: :规则
[笔记]makefile编写的更多相关文章
- Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Make和Makefile编写(详见GCC手册)
Makefile和Make Rules 多模块软件.依赖树和Make 默认规则 Make使用程序对简单变量的支持 内建变量 虚目标 特殊目标 一般性语法错误及其纠正措施 命令行的使用和调试 Makef ...
- Hadoop学习笔记(5) ——编写HelloWorld(2)
Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我 ...
- linux 下C语言编程库文件处理与Makefile编写
做开发快3年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把人弄蠢了.便下定决心一 ...
- 单目录下多文件 makefile编写
makefile很久就接触过了,但是一直没怎么深入的去学习和总结:在项目中我也只是看看makefile或者修改部分语句,全部自己动手写的话还真没有:知识在于沉淀,这句说的非常好,所以现在把自己理解的东 ...
- linux --> Makefile编写
Makefile编写 单目录 测试程序在同一个文件中,共有func.h.func.c.main.c三个文件,Makefile写法如下所示: CC = gcc CFLAGS = -g -Wall mai ...
- Linux——makefile编写
以前对makefile的编写,限于刚开始接触,我都比较局限一些死板的格式,有时候就会显得有些繁琐.在进一步了解一些系统编译和链接的知识后,对makefile编写流程有了一些新的认识,所以来此梳理梳理, ...
- 如何将多个C文件链接在一起----Makefile编写及make指令
需使用GCC编译器,关于MinGW的安装指南:https://people.eng.unimelb.edu.au/ammoffat/teaching/20005/Install-MinGW.pdf 单 ...
- Windows 下的 Makefile 编写
Windows 下的 Makefile 编写(一)Makefile的基本规则 作者:cntrump Makefile对于很多人来说是陌生的,特别是习惯于使用 IDE 的人来说,似乎没有听说过 Make ...
随机推荐
- GitHub从小白到熟悉<四>
GitHub issue 使用教程 创建 一个issue (显示所有bug 或者 说 交流的 问题列表)
- RPC 框架 介绍 (转)
出处: 谁能用通俗的语言解释一下什么是 RPC 框架? 知乎: 问题:了解到最近 Java 的 Netty 很火,只知道它是这样类型的一种框架.想了解一下它主要用于解决了什么问题?适用于什么样的场景? ...
- 分布式的几件小事(十一)分布式session如何实现
1.分布式会话是什么? 首先,我们知道浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护 ...
- GO语言语法入门
引言 Go Go语言是谷歌2009发布的编程语言,它是一种并发的.带垃圾回收的.快速编译的语言. 它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性.它也打算成为现代的,支持网 ...
- 请写出正则表达式(regex),取得下列黄色部分的字符串 TEL: 02-236-9655/9659 FAX:02-236-9654 (黄色部分即02-236-9655/9659 ) ( 测试面试题)
请写出正则表达式(regex),取得下列黄色部分的字符串 TEL: 02-236-9655/9659 FAX:02-236-9654 答: package test1; import java.uti ...
- Spark写入HBase(Bulk方式)
在使用Spark时经常需要把数据落入HBase中,如果使用普通的Java API,写入会速度很慢.还好Spark提供了Bulk写入方式的接口.那么Bulk写入与普通写入相比有什么优势呢? BulkLo ...
- CDH5.16.1升级kafka0.10到1.0.1
激活1.0.1的包
- filepath:处理文件路径的一把好手
1.ToSlash(path string) string 将相关平台的路径分隔符转为/ package main import ( "fmt" "os" &q ...
- radio赋值法
一般都会使用attr来使选中: $("#DIV的ID input[name='radio的name'][value="'+动态传的radio的value值+'"]&quo ...
- 19.8.12 记录Scaffold(脚手架)的常见属性及使用
Scaffold 有利于我们快速的构建页面,使用也是十分的方便. 下面记录一下其简单的使用方法 Scaffold( appBar: AppBar( title: Text('课程'), ), bo ...