一步一步学好Linux开发之Makefile工程管理
来源:互联网 发布:淘宝上怎么买淘宝账号 编辑:程序博客网 时间:2024/05/16 08:22
1什么是makefile
Makefile文件描述了整个程序的编译,连接等规则。
2Makefile的规则
Makefile 中最重要的组成部分是“规则”
规则:用于说明如何生成目标文件,规则的格式如下:
targets : prerequisites
command
目标 : 依赖
(Tab键) 命令
命令的前面需要以【Tab】键开始
例子:假如有main.c func1.c func2.c要编绎与hello(下同)
hello:main.o func1.o func2.o
gcc func1.o func2.o main.o -o hello
main.o:main.c
gcc -c main.c
func1.o:func1.c
gcc -c func1.c
func2.o:func2.c
gcc -c func2.c
3Makefile的变量修改
如果要为hello目标添加一个依赖,如:func3.o,该如何修改?
obj=main.o func1.o func2.o func3.o
hello:$(obj)
gcc $(obj) -o hello
在makefile中,存在系统默认的自动化变量
v $^:代表所有的依赖文件
v $@:代表目标@
v $<:代表第一个依赖文件
例:
hello: main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
=》
hello: main.o func1.o func2.o
gcc $^ -o $@
4Mafile伪目标
Makefile中把那些没有任何依赖,只有命令的目标称为“伪目标”(phony target)。
“.PHONY” 将“clean”目标声明为伪目标
接上面的例子:
.PHONY : clean
clean :
rm –f hello main.o func1.o func2.o
5Makefile杂项
Makefile中“#”字符后的内容被视作注释。
@:取消回显
6Makefile识别的文件名
make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为这两者之一时,可以使用如下方法指定:
make -f 文件名
Makefile文件描述了整个程序的编译,连接等规则。
2Makefile的规则
Makefile 中最重要的组成部分是“规则”
规则:用于说明如何生成目标文件,规则的格式如下:
targets : prerequisites
command
目标 : 依赖
(Tab键) 命令
命令的前面需要以【Tab】键开始
例子:假如有main.c func1.c func2.c要编绎与hello(下同)
hello:main.o func1.o func2.o
gcc func1.o func2.o main.o -o hello
main.o:main.c
gcc -c main.c
func1.o:func1.c
gcc -c func1.c
func2.o:func2.c
gcc -c func2.c
3Makefile的变量修改
如果要为hello目标添加一个依赖,如:func3.o,该如何修改?
obj=main.o func1.o func2.o func3.o
hello:$(obj)
gcc $(obj) -o hello
在makefile中,存在系统默认的自动化变量
v $^:代表所有的依赖文件
v $@:代表目标@
v $<:代表第一个依赖文件
例:
hello: main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
=》
hello: main.o func1.o func2.o
gcc $^ -o $@
4Mafile伪目标
Makefile中把那些没有任何依赖,只有命令的目标称为“伪目标”(phony target)。
“.PHONY” 将“clean”目标声明为伪目标
接上面的例子:
.PHONY : clean
clean :
rm –f hello main.o func1.o func2.o
5Makefile杂项
Makefile中“#”字符后的内容被视作注释。
@:取消回显
6Makefile识别的文件名
make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为这两者之一时,可以使用如下方法指定:
make -f 文件名
- 一步一步学好Linux开发之Makefile工程管理
- 一步一步学好Linux开发之Linux应用程序地址布局
- 一步一步学好Linux开发之Coredump故障分析
- linux makefile工程管理
- linux历程--Makefile工程管理
- linux makefile文件管理工程
- linux 应用程序设计基础--Makefile工程管理
- Linux学习——Makefile工程管理
- linux应用程序开发之Makefile文件的管理
- 工程管理之makefile与自动创建makefile文件过程
- 工程管理之makefile与自动创建makefile文件过程
- 一步一步学习 Linux 驱动之驱动模块 MakeFile 解析
- 一步一步学习 Linux 驱动之(Kconfig、Makefile)
- Makefile工程管理
- Makefile工程管理
- 使用makefile管理工程
- Makefile工程管理
- makefile工程管理
- 软件bug定义
- Itween 贝塞尔曲线(一)
- 【笔试&面试】列举你所知道的
- css实现三角形 圆形
- Exercises 4.1 E2
- 一步一步学好Linux开发之Makefile工程管理
- E7
- 一、单元测试的概念
- 《Think in Java》(一)——引言感想
- zoj - 3037 - Ladies' Choice(稳定婚姻)
- 一步一步学好Linux开发之Linux应用程序地址布局
- 网页刷新 页面位置不变(根据滚动条)
- oracle的截取函数(主要日期)
- LeetCode 46: Permutations