freebsd系统编程

freebsd系统编程

ID:35943100

大小:676.94 KB

页数:78页

时间:2019-04-26

freebsd系统编程_第1页
freebsd系统编程_第2页
freebsd系统编程_第3页
freebsd系统编程_第4页
freebsd系统编程_第5页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。