【精品】02unix编程培训讲义

【精品】02unix编程培训讲义

ID:26165290

大小:114.00 KB

页数:22页

时间:2018-11-25

【精品】02unix编程培训讲义_第1页
【精品】02unix编程培训讲义_第2页
【精品】02unix编程培训讲义_第3页
【精品】02unix编程培训讲义_第4页
【精品】02unix编程培训讲义_第5页
资源描述:

《【精品】02unix编程培训讲义》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、海量管理资源免费下载!Unix编程培训讲义陆云海1999.04.19初稿1999.11.26第二版2000.03.23第三版1.开发环境以较为流行的Unix操作系统为例,介绍Unix下开发编程的主要内容。SUN工作站与服务器的操作系统是Solaris,常见版本是Solaris2.5、2.5.1、2.6,较新的是Solaris7(相当于2.7版吧),最新的是Solaris8。Solaris的前身是SunOS,Solaris2.5相当于SunOS5.5。SunOS是基于BSDUnix的,而Solaris是基于UnixS

2、VR4的。HP工作站与服务器的操作系统是HP-UX,常见的是HP-UX10.10、10.20,较新的是HP-UX11.0。DEC服务器(现在该称为Compaq的AlphaServer)的操作系统是DigitalUnix,常见的DigitalUnix4.0D(也叫OSF1),Compaq收购DEC后将DigitalUnix更名为TruUnix64。2.编译系统C/C++由于历史的原因,Unix系统的开发主要是使用C/C++语言。C语言的编译器是cc,这是每个系统都会自带的,在/usr/ccs目录下。对于有些需要使用标

3、准C语言的场合,需要安装ANSIC。C++语言是对C语言的扩充,每家Unix系统的支持就不一样了。SUN机上的C++是SUNVisualWorkshop的一部分,需要安装workshop后才能使用C++,也可以只安装C++。安装workshop需要license。SUN上的C++编译器是CC,一般安装在/opt/SUNWspro/bin目录。HP机上的C++是HP开发工具包SoftBench的一部分。SoftBench的安装需要license。HP机上的C++编译器是CC,一般安装在/opt/CC/bin目录。DE

4、C机上的C++是操作系统内置的,编译器是cxx,在/usr/bin目录。2.1编译过程主要分为编译和链接两大步。具体过程:①编译预处理→②编译→③优化→④汇编→⑤链接。①编译预处理宏定义替换、条件编译、头文件包含、特殊符号(__FILE__、__LINE__等)。②编译常数、关键字、标识符、操作符。词法分析、语法分析。③优化中间代码优化、目标代码的生成。④汇编可重定位文件.o、共享的目标文件.so(.sl)、可执行文件。⑤链接静态链接、动态链接。2.2cc命令以SVR4上的C编译系统为基础,介绍cc的用法。管理资源

5、吧·管理人自己的下载网站海量管理资源免费下载!2.2.1cc基本用法cc[选项]源文件[.o文件][库文件]如果源文件中含有main函数,则生成执行文件,缺省情况为在当前目录产生a.out。否则,则只生成.o文件。2.2.2常用选项-o目标文件名:生成指定的目标文件名,可以是执行文件或.o文件,要看有没有-c选项;-c:只生成.o文件;-P:只进行预处理;-C:保留注释;-S:只生成汇编代码;-D符号[=值]:定义符号,若未指明值,则缺省值为1,可以有多个;-Iinclude目录:定义include文件的目录,可以

6、有多个;-L库目录:定义库文件的目录,可以有多个;-l库名:链接时包含库'lib库名.a'或'lib库名.so';-g:加入调试信息;-O[n]:进行代码优化,有的系统还带有优化级别。2.3链接处理链接有静态链接和动态链接两种。2.3.1缺省设置标准的C函数库libc.a(静态库)、libc.so(动态库)主要包含了以下函数:标准I/O函数(stdio.h):标准输入输出、文件输入输出等;字符串处理函数(string.h):strlen、strcpy等;字符分类(ctype.h):isalpha、isupper等;

7、字符串/整数转换(stdlib.h):atoi、itoa等;库函数形式实现的系统调用(unistd.h,sys/types.h,sys/stat.h,fcntl.h):open、read等。2.3.2标准库-l选项指定库名,缺省情况下系统自动包含选项-lc,即自动包含标准C库。如果统一库目录下有库的两个版本,则优先使用动态库。缺省的路径:/usr/ccs/lib、/usr/lib动态库:所有内容被映射到进程虚地址空间中。执行文件小,内存占用小。但是运行时必需存在连接的库。静态库:执行文件只包含所需要的代码。执行文件

8、大,内存占用大。但是运行时不需要连接的库。-dn选项(SUN),指明只进行静态连接。-l选项放在最后较好。管理资源吧·管理人自己的下载网站海量管理资源免费下载!2.3.3静态库、动态库的建立Ÿ静态库,又程档案库,建立步骤:1)生成目标文件cc-c2)用ar命令入档arr$HOME/lib/libtest.amyfunc.o(生成的静态库名前一定要加lib前缀

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

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

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