Makefile: $^ $^ $@ 与 ..c.o
来源:互联网 发布:彩超工作站软件 编辑:程序博客网 时间:2024/05/22 06:59
Makefile: $^ $^ $@ 与 ..c.o
2010-05-16 15:19
gcc -c main.c
gcc -c mytool1.c
gcc -c mytool2.c
gcc -o main main.o mytool1.o mytool2.o
/****第1个Makefile**************************************************************************************************/
Makefile文件
main:main.o mytool1.o mytool2.o
gcc -o main main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
gcc -c main.c
mytool1.o:mytool1.c mytool1.h
gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
gcc -c mytool2.c
/******************************************************************************************************/
Makefile中也#开始的行都是注释行.Makefile中最重要的是描述文件的依赖关系的说
明.一般的格式是:
target: components
TAB rule
Makefile有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是:
$@--目标文件,$^--所有的依赖文件
,$<--第一个依赖文件.
如果我们使用上面三个变量,那么我们可以简化我们的
Makefile文件为:
/**第2个Makefile****************************************************************************************************/
# 这是简化后的
Makefile
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
main.o:main.c mytool1.h mytool2.h
gcc -c $<
mytool1.o:mytool1.c mytool1.h
gcc -c $<
mytool2.o:mytool2.c mytool2.h
gcc -c $<
/******************************************************************************************************/
经过简化后我们的Makefile是简单了一点,不过人们有时候还想简单一点.这里我们学习一个Makefile的缺省规则
..c.o:
gcc -c $<
这个规则表示所有的 .o文件都是依赖与相应的.c文件的.例如
mytool.o依赖于mytool.c
这样 Makefile还可以变为:
/**第3个Makefile****************************************************************************************************/
Makefile
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
..c.o:
gcc -c $<
/******************************************************************************************************/
- Makefile: $^ $^ $@ 与 ..c.o
- Makefile: $^ $^ $@ 与 ..c.o
- Makefile: $^ $^ $@ 与 ..c.o
- makefile %.o:%.c
- makefile %.o:%.c
- makefile .c.o
- makefile .c.o的说明
- makefile $@ $^ $< .c.o变量练习
- Makefile的隐晦规则只 针对.c不针对。o
- 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
- 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
- C标准I|O与Unbufferd I|o
- O-C中的初始化与关键字
- O-C的io与文件
- linux文件设备与I/O:C标准I/O函数与无缓冲I/O
- Makefile 没有规则创建目标“main.o”需要的目标“main.c”
- Android Makefile 错误 No rules to make target *.c , needed by ... *.o
- makefile -C
- UVA - 11542 Square (异或方程组)
- Linux进程间通信——管道(一)
- Mybatis的or逻辑
- ora-123737:instant client light:unsupported server character set zhs16gbk
- java笔试题-> 观察者设计模式2
- Makefile: $^ $^ $@ 与 ..c.o
- linux从零开始学习笔记第二天(共十天)
- 把字符串转换成整数
- DbVisualizer常见问题解答
- 24岁程序猿, 一个人撑起App开发项目
- 编程之注释规范
- org.apache.commons.lang.StringUtil(StringUtil工具类的常用方法)
- poj 2369 Permutations (置换群)
- Java线程技术简介