Makefile常用知识点
格式
- 目标:最终要去生成的文件, 定格写,后面是冒号(冒号后面是依赖)
- 依赖:用来生成目标的源材料
- 命令:加工的方法,命令前面一定是Tab, make的过程就是使用命令将依赖加工成目标的过程
工作原理
- 当我们执行make xx时,Makefile会自动执行xx这个目标下面的命令语句
- 当我们make xx时,是否执行是取决于依赖的,依赖如果成立就会执行命令,否则不执行
- 直接执行make与执行make 第一个目标的效果是一样的(第一个目标其实就是默认目标)
命令前缀
符号 | 含义 |
---|---|
无 | 回显命令和结果, 出错时中断 |
- | 回显命令和结果, 出错时继续执行 |
@ | 不回显命令, 仅显示结果, 出错时中断 |
通配符%和自动推导
- %代表一个或几个字符,例如%.o就代表所有以.o为结尾的文件。
- 当Makefile需要一个文件时,他会将这个目标去按规则套用,一旦套用上某个规则说明,则Makefile会试图寻找这个规则中的依赖,如果能找到则会执行这个规则用依赖生成目标。
自动变量
- $@ 规则的目标文件名
- $< 规则的依赖文件名
- $^ 依赖的文件集合
定义和使用变量
无变量类型,直接定义使用。$变量名使用
- = 赋值语句中变量在被解析时,取决于变量最后一次赋值的值
- := 赋值语句中变量在被解析时,取决于变量最近一次赋值的值
- ?= 前面没有赋值(定义)过时才赋值
- += 给一个已经赋值的变量继续赋值,续接的内容和原来的内容会以空格隔开
环境变量
- 使用export导出的就是环境变量,一般使用大写,普通量使用小写. 环境变量回影响到其它Makefile文件,需谨慎使用. 环境变量在整个工程的Makefile中可以共享,普通变量只是当前本Makefile可用.
特殊符号
- @静默执行 不输出命令本身,仅输出命令本身
Makefile常用知识点的更多相关文章
- DB2_SQL_常用知识点&实践
DB2_SQL_常用知识点&实践 一.删除表中的数据(delete或truncate) 1 truncate table T_USER immediate; 说明:Truncate是一个能够快 ...
- JAVA常用知识点及面试题总结
1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...
- Makefile 常用函数表
Makefile 常用函数表 一.字符串处理函数1.$(subst FROM,TO,TEXT)函数名称:字符串替换函数—subst.函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”.返 ...
- HTML常用知识点代码演示
1 HTML部分常用知识点 <!-- 版本声明 --> <!DOCTYPE html> <!-- 唯一根元素 --> <html> <!-- 对网 ...
- Java 常用知识点
Java 常用知识点 1.日期格式化 SimpleDateFormat Date date=new Date(System.currentTimeMillis()) ; SimpleDateForma ...
- Less常用知识点
上篇文章介绍了如何安装Less,我们将所有东西都写在.less里面,最后通过命令将.less转换成.css文件,就可以放入到项目里用了.今天了解一些less常用知识点. 1.变量:声明两个变量,一个是 ...
- BIOS备忘录之EC常用知识点
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...
- YII2常用知识点总结
YII2常用知识点总结 (一)总结性语句 (1)经常看看yii源码比如vendor\yiisoft\yii2\web这个目录(很重要)下的文件中的方法(这些文件中的公共方法,大致看了下基本上都可以通过 ...
- CSS3常用知识点
CSS3常用知识点 1 css3选择器 1.1 属性选择器 /* E[attr~=val] 表示的一个单独的属性值 这个属性值是以空格分隔的*/ .attr2 a[class~="kawa& ...
随机推荐
- 如何使移动web页面禁止横屏?
https://segmentfault.com/q/1010000005813183 一般只有移动版有这种需求,我们一般不去禁止,而是比例缩放,css实现,竖屏1rem = 9pt ,横屏1rem ...
- php给图片添加圆角并且保持透明,可做圆形头像
原文链接:https://www.zhaokeli.com/article/8031.html 给图片添加圆角, 用到的主要的(判断一个点是否在圆内)的公式在上面所说的生成圆形图片文章中. 然后扫 ...
- 如何高效的使用 Git
-- 代码昨天还是运行好好的今天就不行了. 代码被删了. 突然出现了一个奇怪的 bug,但是没人知道怎么回事. 如果你出现过上面的任何一种情况,那本篇文章就是为你准备的. 除了知道 git add, ...
- 设计模式--命令模式C++实现
命令模式C++实现 1定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求队列或者记录请求日志,可以提供命令的撤销和恢复功能 2类图 角色描述: Receiver接受者角色,就 ...
- 对C++虚函数使用默认参数的注意事项
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/ 备忘一个关于虚函数的小知识点 使用多态调用一个类型中定义的虚函数时,编译器会根据指针的当前 ...
- 十九、dbms_resource_manager(用于维护资源计划,资源使用组和资源计划指令)
1.概述 作用:用于维护资源计划,资源使用组和资源计划指令;包dbms_resource_manager_privs用于维护与资源管理相关的权限. 2.包的组成 1).dbms_resource_ma ...
- zoj3656
题解: 按照位展开,然后一位一位判断 注意判断给出数据是否有问题 代码: #include<cstdio> #include<cmath> #include<algori ...
- LeetCode OJ:Partition List(分割链表)
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- 修复 海盗船 k70 lux 未检测到设备(k70 no device detected)
corsair k70 lux 上周收到的生日礼物,头一次用机械键盘,还是这么高端的机械键盘(729RMB),手感一级棒.但是,有问题啊!把键盘上的 bios按钮拨到8上电脑可以识别,scroll 灯 ...
- $.ajaxSetup
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> ...