linux下make工具使用系列1
来源:互联网 发布:淘宝美妆 编辑:程序博客网 时间:2024/05/02 01:56
一、概述
linux可以使用make来编译,make是一个命令工具,一个解释Makefile中命令的工具,各个厂商的make各不相同,也有不同的语法,但都在“文件依赖性”上做文章。详细了解参考《GNU Make使用手册》。
make可以根据文件更新的时间戳来判断需要重新编译哪些文件以及编译的先后顺序。
代码变为可执行文件分为两步:
1、编译,转为中间文件,编译时,编译器需要的是语法的正确和函数/变量声明的正确,只有这样才能编译通过,编译出一个中间目标文件;
2、链接,把中间文件合并成执行文件。链接时,主要是链接函数和全局变量。
二、规则样式
基本的样式如下:
目标:依赖<tab>命令
如
hello:hello.c<tab>gcc -o hello hello.c
其中的hello表示目标文件,hello.c表示目标文件欲生成所需要依赖的文件。gcc -o hello hello.c表示从hello.c生成hello可执行文件的命令。
目标也可以是一个标签,如“clean”,其后可没有依赖文件,称为“伪目标”,make不会自动执行该规则 的命令,要执行这种规则的命令,需要在make命令后明显的指出标签来,如make clean才会执行clean对应的规则。
make会一层一层的寻找依赖关系,如果最终的依赖文件不存在,那么make会退出。
其中如果依赖文件有一个比目标文件时间戳新,那么命令就会执行。
三、变量定义
makefile中的变量是一个字符串,可以类比于C中的宏;
延时变量:当真正使用这个变量时才确定其值,使用“=”“?=”或者define定义为延时变量;
立即变量:定义时已经确定其值,使用“:=”赋值;
如果赋值采用”+=”,则如果其右边变量为立即变量,则为立即变量,否则是延时变量。
四、符号含义
1、$@:规则的目标文件名;
2、$^:规则的所有依赖文件;
3、$<:规则的第一个依赖文件;
4、%:通配符,和一个字符串中任意个数字符相匹配;
利用以上的符号替代之前的hello规则
原规则:
hello:hello.c gcc -o hello hello.c
利用符号替换,形式:
hello:hello.c gcc -o $@ $^
- linux下make工具使用系列1
- linux下make工具使用系列2
- linux下make工具使用系列3
- linux下make工具使用系列4
- linux下make工具使用系列5
- linux下make工具使用系列6
- linux下make工具使用系列7
- linux下make工具使用系列8
- Linux下使用make工具与库
- linux下make使用
- linux下makefile配置文件及make工具的使用
- linux下编程工具之make篇
- linux 下面make工具的使用
- linux工具使用:vi,gcc,gdb,make
- LINUX下C语言入门系列课程-MAKE使用入门
- Linux 下gcc,make的使用
- Linux下的make命令使用心得
- Linux下的make命令使用心得
- jdk不显示,右边空白,解决办法
- ORMLite使用
- StageFright框架流程解读
- 无约束最优化算法-Newton法原理及c++编程实现
- c# json 日期中间有T 国际标准时间
- linux下make工具使用系列1
- 变态跳台阶[剑指offer]之python实现
- [FAQ14614]如何用MMU保护buddy system?
- Codevs 1260 快餐问题
- 如何绕过清单文件,动态注入activity
- 第四章 作业4
- K-th Number(poj2104)线段树维护区间+平方分割+二分搜索
- [FAQ14383]如何在内核打开栈保护功能?
- kafka安装部署