MAKEFILE 学习笔记 —— 实用功能
来源:互联网 发布:js数字拆分成数组 编辑:程序博客网 时间:2024/05/22 03:12
MAKEFILE 学习笔记 —— 实用功能
一. 变量的使用
当我们的程序越来越复杂时,变量的使用可以大大提高我们的效率。makefile 中变量的使用有点类似于 c 语言中的宏,格式如下name = file使用变量时应该加上$(),代码如下所示
obj = main.o func.oaaa: $(obj) gcc -o aaa main.o func.omain.o: main.c ex2.h gcc -std=c99 -c main.cfunc.o: func.c ex2.h gcc -std=c99 -c func.cclean: rm -fr $(obj) aaa
- name:变量的名字,如以上代码中的 obj
- file :变量所代表的文件名 如以上代码中的 main.o func.o
二. make的自动推导
在我们使用make进行编译链接时,像以上示例的代码不免有些麻烦,而 make 有一个自动推导的功能可以大大提高工作效率。即,当 make 发现一个 .o 文件时,便会自动将其所依赖的 .c 文件加载进来,这被称为自动推导,这也被称为 make 的隐晦规则。如下示例便是上面那个例子的 make 自动推导版。
obj = main.o func.oaaa: $(obj) gcc -o aaa main.o func.omain.o: ex2.hfunc.o: ex2.hclean: rm -fr $(obj) aaa
三. 共用.h文件
当我们的许多 .c 文件共用一个 .h 文件时,每次都写入同一个 .h 文件未免太麻烦,这里有一个精简的方法,即共用 .h 文件,如下代码:
obj = main.o func.oaaa: $(obj) gcc -o aaa main.o func.omain.o func.o: ex2.hclean: rm -fr $(obj) aaa
如以上代码,将共用同一个 .h 文件的目标文件写在同一行内即可。
四. 打扫
当我们编译完程序之后,便要清理一下所生成的那些链接文件。如下代码
obj = main.o func.oaaa: $(obj) gcc -o aaa main.o func.omain.o func.o: ex2.h.PHONY: cleanclean : -rm -fr $(obj) aaa
- PHONY: clean 是声明 clean 是伪目标
- rm 之前的 “-” 是告诉 make 若编译时遇到错误,不用管,继续向下编译。
参考文献
[1] 陈浩《跟我一起写Makefile》
0 0
- MAKEFILE 学习笔记 —— 实用功能
- underscore学习笔记—实用功能/Utility
- libevent学习笔记【使用篇】——7. evbuffer:缓冲IO的实用功能
- Linux学习笔记——Makefile教程
- 学习笔记——Makefile中的=与:=
- LINUX学习笔记8——Makefile工程管理
- 学习笔记——Makefile中的=与:=
- Linux学习笔记——例说makefile 综合案例
- Makefile学习笔记
- makefile学习笔记
- makefile学习笔记(1)
- Makefile学习笔记
- MakeFile学习笔记一
- makefile学习笔记
- makefile学习笔记
- Makefile的学习笔记
- makefile学习笔记
- Makefile学习笔记
- 真机报错:dyld`dyld_fatal_error: -> 0x120085088 <+0>: brk #0x3
- Mybatis传list参数调用oracle存储过程
- mac如何查看系统字体和安装其他字体
- 给REST接口做鉴权认证:OAuth
- 函数、指针、数组
- MAKEFILE 学习笔记 —— 实用功能
- HDU 2803 The MAX [Ad Hoc]
- git使用记录
- 北大计算所词性标注集简表
- 利用tomcat启动应用
- 如何在Androdi Studio中获取SHA1数字签名和MD5
- MAC OS下查看静态链接库的Version
- 人脸数据库汇总
- 多个Ativity值传递FLAG_ACTIVITY_FORWARD_RESULT