欢迎来到天天文库
浏览记录
ID:35943100
大小:676.94 KB
页数:78页
时间:2019-04-26
《freebsd系统编程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实用标准文案FreeBSD系统编程目录第一章:FreeBSD的Make第二章:BSD自举第三章:进程和内核服务第四章:高级进程控制和信号第五章:基本I/O第六章:高级I/O第七章:进程资源和系统限制第八章:FreeBSD5.x文档实用标准文案第一章FreeBSD的make1.1FreeBSD的make作为常用的和基本的Unix软件开发工具,make是一个可以跟踪全部的文件依赖关系的非常好的簿记工具程序。要管理依赖关系这样的项目细节常常需要花费很多的时间,甚至会拖延开发进度。当多个开发人员合作一个项目的时候,依赖关系的跟踪就可能变得相当困难了。事实上
2、,正确地使用make可以帮助我们加快应用程序的开发,从而提高生产效率。虽然make最初的设计是用来对应用程序版本构建的维护过程进行管理的,我们实际上还可以通过创建一系列的基于目标依赖关系的Unixshell命令来让make完成多种多样的额外工作。这些依赖关系可以用很多种方式定义——包括需要进行编译的源文件、所需的库文件、shell命令以及其它的目标。make有多种风格的版本,其中包括GNUmake和SystemVmake。并不是在每个make版本中都有我们接下来讨论的那些特性,具体使用哪个版本完全取决于你的个人喜好。我们将主要关注跟随FreeBSD
3、一起发布的make(也叫做bmake或pmake),尤其是如何通过它来编译和更新FreeBSD系统,也就是所谓的makeworld。虽然我们关注的是FreeBSDmake,但我们在这里讨论的所有东西对于各种BSD版本来说都是适用的。我们首先会讲述一个Makefile的基本文件布局和语法。如果这对于你来说太简单了,那你可以直接跳到本章结束处的示例部分去阅读。(注意,我们给出的代码示例只用于演示我们关于make目标和依赖关系的讨论,它们并不一定是可以运行的代码。)当然,和其它工具程序一样,最开始应该先去看看manpage,以对make提供的命令行选项的
4、概要和细节有一个正式的了解。同时,和其它工具程序一样,学习make的最好方法就是使用它。创建一些小型的源文件(可以使用任何语言),然后尝试一些下面给出的例子。我们希望读完本章之后你除了理解make的语法规则之外,还知道它是如何工作的。1.2Makefile布局总的说来,你使用make的方式就是让它去读一个Makefile,你需要在Makefile里指定一个目标及其依赖关系。在运行的时候,make会按顺序搜索名字为Makefile或makefile的文件。这个Makefile通常是放在一个工程的根目录下的,如果想指定其它的Makefile,可以在命令
5、行上用-f(filename)的选项给出。[Copytoclipboard][-]CODE:make-fOtherMakefile1.3语法一个Makefile的结构由四个基本行组成,它们都可以通过在行尾添加‘’字符来扩展到下一行(和shell编程相似)。注释是以‘#’号开始的,至行尾结束。[Copytoclipboard][-]CODE:#########################################SimpleMakefilewithcommentexample#文档实用标准文案#######################
6、##################whenrun,itwilljustechohelloall: echo"hello"要使用make来编译一个工程,首先需要确定在你的当前工作目录中已有一个正确的Makefile,然后再通过下列命令之一来使用make:[Copytoclipboard][-]CODE:bash$make bash$makeallbash$make1.4目标用来指定目标的方式有很多种,不过最常用的就是用目标文件或一个工程的名字。工程名字不应当包含有空格或标点符号,不过这只是个惯例而已;少量的空格和标点符号
7、也是允许的。这个名字必须写在一个新行的开头,必须以单冒号(:)、双冒号(::)或感叹号(!)三者之一结束。[Copytoclipboard][-]CODE:myprog: another:: sample! 在这些目标名字之后是所需的依赖条件,包括名字、变量以及其它的目标等等。如果你的依赖条件太多的话,可
8、以用一个‘’和一个newline来将它们分开。所有的依赖条件都必须Makefile内定义或者存在于某个外部文件中,否则m
此文档下载收益归作者所有