Makefile 静态模式
来源:互联网 发布:代理服务器源码 编辑:程序博客网 时间:2024/06/18 06:59
静态模式可以更加容易地定义多目标的规则,可以让我们的规则变得更加的有弹性和灵活。
- makefile 中的all是做什么的?
- Makefile 静态模式——
$(objects): %.o: %.c、$
<
0. 一种更复杂的规则
<targets ...>: <target-pattern>: <prereq-patterns ...> <commands>
1. %.o、%.c
- 如果我们的
<target-parrtern>
(目标模式)定义成“%.o”,意思是<target>
集合中都是以“.o”结尾的,而如果我们的<prereq-parrterns>
(依赖模式)定义成“%.c”,意思是对<target-parrtern>
所形成的目标集进行二次定义,其计算方法是,取<target-parrtern>
模式中的“%”(也就是去掉了[.o]这个结尾),并为其加上[.c]这个结尾,形成的新集合。所以,我们的“目标模式”或是“依赖模式”中都应该有“%”这个字符。
objects = foo.o bar.oall: $(objects)$(objects): %.o: %.c$(CC) -c $(CFLAGS) $< -o $@
2. $@
, $<
$@
:目标;$<
:第一个依赖;$^
:表示所有的依赖$(word 2, $^)
:第二个依赖;- $(word n,text) 函数用来提取 text 中的第 n 个词
3. all
- all: 一般代表编译所有相关项目。
比如要把一个 hello.cpp 文件编译成 hello(可执行应用程序):
all: hello anotherhello: hello.cpp g++ -o $@ $<another: another.cpp g++ -o $@ $<
- 直接 make 或 make all 的话会执行 hello.cpp 和 another.cpp 的编译命令
- 后面不加参数的话,会把第一个目标作为默认的
- make hello 的话只编译 hello.cpp
- make another 的话只编译 another.cpp
4. .PHONY
.phony是表示 目标是伪目标,并不生成相应的文件。.phony标志的文件总是执行的。
阅读全文
0 0
- makefile: 静态模式
- Makefile的静态模式
- MAKEFILE--静态模式
- Makefile中的静态模式
- Makefile静态模式
- Makefile静态模式
- Makefile 静态模式
- makefile静态模式
- 关于Makefile静态模式
- makefile 推荐使用静态模式
- makefile之静态模式 (转载)
- makefile 多目标 静态模式 自动生成依赖性
- makefile详解 多目标 静态模式 十三
- Linux之Makefile(静态模式)
- 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
- 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
- 静态库 makefile
- makefile 静态库
- SDUT-数据结构实验之链表七:单链表中重复元素的删除
- Java引用数据类型,流程控制(三种结构:选择结构)
- C语言日志类
- Spring Cloud 与 Dubbo
- J
- Makefile 静态模式
- 在腾讯云ubuntu服务器上安装mongodb,修改bindip之后无法启动和连接
- 套接字I/O模型-重叠I/O
- 数据抓包和Wireshark的使用方法
- python跨目录调用
- caffe cpu环境搭建&训练模型方法
- (Python学习笔记)Python代码转换为.exe可执行程序过程及注意事项
- HDU 6047 Maximum Sequence (贪心)
- Android向服务器提交数据