makefile编译多个目标
来源:互联网 发布:手机淘宝修改地址 编辑:程序博客网 时间:2024/06/04 18:14
www.360doc.com/content/11/1108/21/1317564_162898533.shtml
1.makefile编译多个目标。
我们知道makefile通常把第一个目标作为终极目标。当make命令时
会把第一个目标当成终极目标。
make的最终目标是makefile中的第一个目标,而其它目标一般是由这个目标连带出来的。这是make的默认行为。当然,一般来说,你的makefile中的第一个目标是由许多个目标组成,你可以指示make,让其完成你所指定的目标。要达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到的“make clean”形式)
使用指定终极目标的方法可以很方便地让我们编译我们的程序,例如下面这个例子:
.PHONY: all
all: prog1 prog2 prog3 prog4
从这个例子中,我们可以看到,这个makefile中有四个需要编译的程序——“prog1”, “prog2”, “prog3”和 “prog4”,我们可以使用“make all”命令来编译所有的目标(如果把all置成第一个目标,那么只需执行“make”),我们也可以使用“make prog2”来单独编译目标“prog2”。
2.拓展应用。
使用指定终极目标的方法可以很方便地让我们编译我们的程序,例如下面这个例子:
.PHONY: all
all: prog1 prog2 prog3 prog4
从这个例子中,我们可以看到,这个makefile中有四个需要编译的程序——“prog1”, “prog2”, “prog3”和 “prog4”,我们可以使用“make all”命令来编译所有的目标(如果把all置成第一个目标,那么只需执行“make”),我们也可以使用“make prog2”来单独编译目标“prog2”。
2.拓展应用。
即然make可以指定所有makefile中的目标,那么也包括“伪目标”,于是我们可以根据这种性质来让我们的makefile根据指定的不同的目标来完成不同的事。在Unix世界中,软件发布时,特别是GNU这种开源软件的发布时,其makefile都包含了编译、安装、打包等功能。我们可以参照这种规则来书写我们的makefile中的目标。
“all”
这个伪目标是所有目标的目标,其功能一般是编译所有的目标。
“clean”
这个伪目标功能是删除所有被make创建的文件。
“install”
这个伪目标功能是安装已编译好的程序,其实就是把目标执行文件拷贝到指定的目标中去。
“print”
这个伪目标的功能是例出改变过的源文件。
“tar”
这个伪目标功能是把源程序打包备份。也就是一个tar文件。
“dist”
这个伪目标功能是创建一个压缩文件,一般是把tar文件压成Z文件。或是gz文件。
“TAGS”
这个伪目标功能是更新所有的目标,以备完整地重编译使用。
“check”和“test”
这两个伪目标一般用来测试makefile的流程。
当然一个项目的makefile中也不一定要书写这样的目标,这些东西都是GNU的东西,但是我想,GNU搞出这些东西一定有其可取之处(等你的UNIX下的程序文件一多时你就会发现这些功能很有用了),这里只不过是说明了,如果你要书写这种功能,最好使用这种名字命名你的目标,这样规范一些,规范的好处就是——不用解释,大家都明白。而且如果你的makefile中有这些功能,一是很实用,二是可以显得你的makefile很专业(不是那种初学者的作品)。
“all”
这个伪目标是所有目标的目标,其功能一般是编译所有的目标。
“clean”
这个伪目标功能是删除所有被make创建的文件。
“install”
这个伪目标功能是安装已编译好的程序,其实就是把目标执行文件拷贝到指定的目标中去。
“print”
这个伪目标的功能是例出改变过的源文件。
“tar”
这个伪目标功能是把源程序打包备份。也就是一个tar文件。
“dist”
这个伪目标功能是创建一个压缩文件,一般是把tar文件压成Z文件。或是gz文件。
“TAGS”
这个伪目标功能是更新所有的目标,以备完整地重编译使用。
“check”和“test”
这两个伪目标一般用来测试makefile的流程。
当然一个项目的makefile中也不一定要书写这样的目标,这些东西都是GNU的东西,但是我想,GNU搞出这些东西一定有其可取之处(等你的UNIX下的程序文件一多时你就会发现这些功能很有用了),这里只不过是说明了,如果你要书写这种功能,最好使用这种名字命名你的目标,这样规范一些,规范的好处就是——不用解释,大家都明白。而且如果你的makefile中有这些功能,一是很实用,二是可以显得你的makefile很专业(不是那种初学者的作品)。
0 0
- makefile编译多个目标
- 如何用一个makefile编译多个目标
- 如何用一个makefile编译多个目标
- 如何用一个makefile编译多个目标
- 使用makefile编译多个目标文件的方法
- GNU/linux gdb调试器的使用 及 makefile编译多个目标
- Makefile中使用 for 控制结构编译多个目标文件
- Makefile生成多个目标文件
- Makefile规则(一):生成多个目标
- Makefile:1: *** 多个目标匹配。 停止。
- makefile:1: *** 多个目标匹配。 停止。
- Makefile 编译多个文件
- Makefile编译多个可执行文件
- 多个C文件生成多个目标的makefile
- C++编译多个文件makefile
- Makefile之编译多个可执行程序
- makefile多规则目标
- [ make ] Makefile: 多个all目标的处理 和 变量目标的处理
- Linux中/proc目录下文件详解
- oracle 排序过程中null的显示问题
- socket错误10053 wsanobuf ,注意非页缓冲池的占用
- 如何防止程序被注入(最直接的方法)
- Jmeter介绍+安装说明!!!
- makefile编译多个目标
- Android API Guide学习和常用布局及基本UI控件
- pure vitual function called导致的异常
- 采访土耳其支付公司—— Basit Ödeme (Erkom)
- 导航控制器的使用——IOS
- Activity的生命周期
- Javascript之旅——第七站:说说js的调试
- 5大顶级移动UI开发框架
- 你真的了解word-wrap和word-break的区别吗?