makefile
来源:互联网 发布:动画人物设计软件 编辑:程序博客网 时间:2024/06/06 15:35
1.makefile首先要定义一个规则,规则名随便取。如
kyo:
2.规则的下一行首先必须是一个tab键,然后再是shell命令。如:
all:
echo aaa
执行make后 会打印出:
echo aaa
aaa
要想不打印出第一行,可以在echo前加 @echo aaa或者编译的时候:make -s
3.makefile适合大的程序。
4.可以包含多条规则,但敲make的时候只执行第一条规则。
要想执行哪条规则,可以: make + 规则名
5. 依赖规则:
all:clean install uninstall
echo ttt
clean:
echo keyo
install:
echo install
uninstall:
echo uninstall
按顺序执行后面的依赖关系。
依赖文件:
clean:1.txt
echo kyo
文件和规则同名时,文件比规则优先级高!!!
clean:1.txt
echo kyo
1.txt:
echo 1.txt --->只打印出echokyo;
要想改变:用伪规则。????
.PHONY:1.txt
例如:
all: clean install uninstall
echo ttt
.PHONY: 1.txt
clean:1.txt
echo kyo
1.txt:
echo 1.txt
install:
echo install
uninstall:
echo uninstall
6. make -C /kyo/ds/makefile/ -->指定makefile所在的路径
可以组合使用
make -C /kyo/ds/makefile/ install -s
如果makefile的文件名被修改成fff 可以这样执行:
make -C /kyo/ds/makefile/ install -f fff
7. 也可以从一个makefile调用另外一个makefile的规则,把当前的makefile写成如下:
all:
make -C /kyo/ds/makefile/ install -ffff
8.makefile的变量
变量的定义:为了区别shell的变量,makefile都用大写。
KYO = "hello world"
all:
echo ${KYO}
shell访问变量:需两个$符号,aa=bb;echo$$aa(一行命令就是一个进程,为了在同一个进程,中间需用 ;)
makefile访问变量:一个$符号和一对大括号,echo${KYO}或者 echo$(KYO)
环境变量不需要先定义:直接可以 echo $$PWD
export KYO 导出变量,在另一个makefile中也可以调用到。
9. makefile变量的赋值 “ =, +=, :=”
:= 直接替换,效率高
= 在后面才替换 两者只有在=后面跟有变量时才有区别。
一般情况下都使用前者。
A ?= AAA 检测在前面A有没有赋值,赋过值就失败,没赋过就成功。
$^ 代替所有依赖 $< 代替第一个依赖 $@ 代替规则名
- Makefile
- Makefile
- makefile
- makefile
- makefile
- Makefile
- Makefile
- Makefile
- Makefile
- Makefile
- Makefile
- makefile
- Makefile
- makefile
- Makefile
- makefile
- makefile
- makefile
- 奋战杭电ACM(DAY2)1003
- 我的第一篇博客
- plsql 导入dmp文件
- 查询和添加系统联系人
- iPAD越狱后下载破解版的pad软件方法总录
- makefile
- Poj 1146 ID Codes + Poj 1833 排列 (全排列库函数)
- hdu 4419 (线段树 + 扫描线 + 离散化)
- 【91xcz】记录更安全 有道云笔记版新增阅读密码
- Qt关于文件和文件夹的操作
- jsp原理分析 jsp声明和jsp脚本讲解 源码分析 及jsp注释讲解 jsp页面的访问量
- 十大iPhone防盗应用
- Git 版本控制系統(3) 還沒 push 前可以做的事
- JBPM4框架小谈