UNIX开发基础

UNIX开发基础

ID:39342832

大小:142.00 KB

页数:38页

时间:2019-07-01

UNIX开发基础_第1页
UNIX开发基础_第2页
UNIX开发基础_第3页
UNIX开发基础_第4页
UNIX开发基础_第5页
UNIX开发基础_第6页
UNIX开发基础_第7页
UNIX开发基础_第8页
UNIX开发基础_第9页
UNIX开发基础_第10页
资源描述:

《UNIX开发基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UNIX开发基础韦安健2003年2月27日UNIX开发基础UNIX下的编译器编译器概述编译器的使用举例make和makefile常用的调试工具CVS的使用需要学习的一些内容编译器概述UNIX下使用编译器来生成目标文件或可执行文件。编译器和平台是相关连的,不同的平台,其编译器是不一样的,编译器生成的目标文件和可执行文件也是不一样的,但一些基本的使用方法确大同小异。各平台下的C编译器和C++编译器如下表:平台C编译器C++编译器Linuxcc、gccg++CompaqTru64cccxxSolarisccCCHP-UXccaCCIBM-AIXccx

2、lC编译器的使用(一)各编译器的具体使用方法可以通过man命令查看各平台提供的帮助手册。下面以cc编译器为例说明编译器的一些基本使用方法。使用cc编译器的命令格式如下:cc[option...]file...[option...]cc为编译命令,file为所要编译的程序文件,option为编译选项。每个选项以“-”开头,多个选项之间用空格分开,下面是一些常用的编译选项:编译器的使用(二)-c:编译源文件,但不进行链接,对于每一源文件都相对应地输出一目标文件,可以用-o选项制定输出的目标文件名。-o:指定输出文件的名字,可以是可执行文件名,也可以

3、是目标文件名。在编译生成可执行文件时,如果没有改选项,则编译器输出的默认的可执行文件名为:a.out。-Dmacro:定义宏macro,并且宏macro的值为“1”。-Dmacro=val:定义宏macro,其值为“val”。-Umacro:取消宏macro的定义,该选项在-D选项之后处理-llibname:在链接时使用名为libname的库。编译器会在链接时搜索标准的库目录和在选项中指定的库目录,寻找名为liblibname.a或liblibname.so的文件进行链接。-Llibpath:增加搜索库文件的目录列表。-Ipath:增加搜索in

4、clude文件的目录列表。-g:生成调试信息。举例编译的过程环境变量的设置程序的运行UNIX开发基础UNIX下的编译器make和makefilemake的使用makefile的编写举例常用的调试工具CVS的使用需要学习的一些内容make的使用在UNIX下,人们通常利用make工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。make工具通过一个称为makefile的文件来完成并自动维护编译

5、工作。makefile需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。当修改了其中某个源文件时,如果其他源文件依赖于该文件,则也要重新编译所有依赖该文件的源文件。使用make工具只需要键入“make”命令即可。当make命令执行时,它会在当前目录下搜索文件名为“makefile”或“Makefile”的文件。如果不想make自动搜索缺省文件,可以在命令中使用“-f”选项来指定文件。使用make的常用命令格式如下:make[-fmakefile][options][macrodefinif

6、ions][targets]makefile的编写makefile是make的规则描述脚本,它描述生成什么文件集,并怎样生成。makefile文件中注释行以“#”开头,其他行都是描述make规则的控制行。当一行写不下的时候,可以使用续行符“”转入下一行。makefile中允许四种类型的行:目标行命令行宏定义行伪指令行。makefile的编写-目标行(一)目标行告诉make建立什么,规则为:目标名表:依赖性表目标名表可以包含多个目标的名字,一般情况下只列出一个目标名,目标名列表不能为空;依赖性表指出目标和哪些文件、目标具有依赖关系,依赖性表可以

7、为空,表示该目标没有其它依赖关系。make执行时,按依赖深度优先顺序扫描处理遇到的目标。即当前目标的依赖表中有其他目标名,则立刻去扫描该目标,直到当前目标依赖表中的目标都扫描过后,才确定当前目标是否需要重新生成。如果有比当前目标更新的依赖目标,或依赖的目标不存在,则必须生成相关目标。注意依赖表为空,则总是生成目标。如果目标依赖的文件或目标名比当前目标旧,则不生成目标。目标行的后续行一般是以Tab开始的行指出目标的生成规则,即命令行。如:testObj.o:testObj.ctestObj.hcc-ctestObj.cmakefile的编写-目标

8、行(二)使用后缀规则的目标make有自己规定的通用目标,也就是后缀规则。后缀规则是一次性告诉make如何建立某些类型目标。后缀规则有两种:双后缀规则和

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

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

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