Sun+Studio+10+C%2B%2B+用户指南.pdf

上传人:本田雅阁 文档编号:2487415 上传时间:2019-04-03 格式:PDF 页数:416 大小:3.23MB
返回 下载 相关 举报
Sun+Studio+10+C%2B%2B+用户指南.pdf_第1页
第1页 / 共416页
Sun+Studio+10+C%2B%2B+用户指南.pdf_第2页
第2页 / 共416页
Sun+Studio+10+C%2B%2B+用户指南.pdf_第3页
第3页 / 共416页
Sun+Studio+10+C%2B%2B+用户指南.pdf_第4页
第4页 / 共416页
Sun+Studio+10+C%2B%2B+用户指南.pdf_第5页
第5页 / 共416页
点击查看更多>>
资源描述

《Sun+Studio+10+C%2B%2B+用户指南.pdf》由会员分享,可在线阅读,更多相关《Sun+Studio+10+C%2B%2B+用户指南.pdf(416页珍藏版)》请在三一文库上搜索。

1、Sun Microsystems, Inc. 请将有关本文档的意见和建议提交至: http:/ C+ 用户指南 Sun Studio 10 文件号码 819-1613-10 2005 年 1 月,修订版 A 请回收 版权所有 2005 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. 保留所有权利。 美国政府权利商业软件。政府用户应遵循 Sun Microsystems, Inc. 的标准许可协议,以及 FAR (Federal Acquisition Regulations,

2、即 “联邦 政府采购法规” )的适用条款及其补充条款。 其使用应遵守许可证条款。 本发行可包含第三方开发的材料。 本产品的某些部分可能是从 Berkeley BSD 系统衍生出来的,并获得了加利福尼亚大学的许可。 UNIX 是 X/Open Company, Ltd. 在美国和其他 国家/地区独家许可的注册商标。 Sun、 Sun Microsystems、 Sun 徽标、 Java 和 JavaHelp 是 Sun Microsystems, Inc. 在美国和其他国家/地区的商标或注册商标。所有 SPARC 商标的使用均已获得许可,它们是 SPARC International, Inc.

3、 在美国和其他国家/地区的商标或注册商标。标有 SPARC 商标的产品均基于由 Sun Microsystems, Inc. 开发的体系结构。 本服务手册所介绍的产品以及所包含的信息受美国出口控制法制约,并应遵守其他国家/地区的进出口法律。严禁将本产品直接或间接地用于 核设施、导弹、生化武器或海上核设施,也不能直接或间接地出口给核设施、导弹、生化武器或海上核设施的最终用户。严禁出口或转口到美 国禁运的国家/地区以及美国禁止出口清单中所包含的实体,包括但不限于被禁止的个人以及特别指定的国家/地区的公民。 本文档按 “原样”提供,对于所有明示或默示的条件、陈述和担保,包括对适销性、适用性或非侵权性

4、的默示保证,均不承担任何责任,除非 此免责声明的适用范围在法律上无效。 iii 目录 开始之前xxvii 本书的结构xxvii 印刷约定xxviii Shell 提示符xxix 受支持的平台xxix 访问 Sun Studio 软件和手册页xxix 访问编译器和工具文档xxxii 访问相关的 Solaris 操作系统文档xxxiv 访问相关的 C+ 手册页xxxiv 其他公司出版的书籍xxxv 开发人员资源xxxvi 与 Sun 技术支持联系xxxvi Sun 欢迎您提出意见和建议xxxvi 第 I 部分C+ 编译器 1.C+ 编译参阅器11 1.1Sun Studio 10 C+ 5.7 编

5、译器的新特性和新功能11 1.2Sun Studio 9 C+ 5.6 编译器的新特性和新功能13 1.2.1对影响常用 SPARC 处理器的缺省设置进行了更改13 1.2.2新的 SPARC 处理器的扩展选项14 ivC+ 用户指南 2005 年 1 月 1.2.3新的 Intel 处理器的扩展选项14 1.2.4SPARC 和 x86 的新的缺省优化15 1.2.5用于生成更快代码的新选项16 1.2.6用于改进库性能的新选项17 1.2.7用于加速编译的扩展选项17 1.2.8语言增强17 1.3标准的一致性19 1.4C+ 自述文件19 1.5手册页110 1.6C+ 公用程序110

6、1.7本地语言支持 111 2.使用 C+ 编译器21 2.1入门21 2.2调用编译器22 2.2.1命令语法23 2.2.2文件名称约定23 2.2.3使用多个源文件24 2.3使用不同编译器版本进行编译24 2.4编译和链接25 2.4.1编译和链接序列25 2.4.2分别编译和链接26 2.4.3一致编译和链接26 2.4.4为 SPARC V9 编译27 2.4.5诊断编译器27 2.4.6了解编译器的组织28 2.5预处理指令和名称29 2.5.1Pragma29 2.5.2具有可变数量参数的宏29 目录v 2.5.3预定义的名称210 2.5.4#error210 2.6内存要求

7、210 2.6.1交换空间大小210 2.6.2增加交换空间211 2.6.3虚拟内存的控制211 2.6.4内存要求212 2.7简化命令212 2.7.1在 C Shell 中使用别名212 2.7.2使用 CCFLAGS 来指定编译选项213 2.7.3使用 make213 3.使用 C+ 参阅编译器选项31 3.1语法31 3.2通用指南31 3.3按功能汇总的选项32 3.3.1代码生成选项32 3.3.2编译时性能选项33 3.3.3调试选项33 3.3.4浮点选项34 3.3.5语言选项35 3.3.6库选项35 3.3.7许可证选项36 3.3.8废弃的选项37 3.3.9输出

8、选项37 3.3.10运行时性能选项38 3.3.11预处理程序选项310 3.3.12文件配置选项310 3.3.13参考选项311 viC+ 用户指南 2005 年 1 月 3.3.14源文件选项311 3.3.15模板选项311 3.3.16线程选项312 第 II 部分 编写 C+ 程序 4.语言扩展参阅41 4.1链接程序作用域41 4.2线程局部存储42 4.3用限制较少的虚函数覆盖43 4.4生成 enum 类型和变量的向前声明43 4.5使用不完整 enum 类型44 4.6将 enum 名称作为作用域限定符44 4.7使用匿名 struct 声明45 4.8传递匿名类实例的地

9、址46 4.9将静态名称空间作用域函数声明为类友元47 4.10使用函数名称的预定义 _func_ 符号47 5.程序组织51 5.1头文件51 5.1.1可适应语言的头文件51 5.1.2幂等头文件52 5.2模板定义53 5.2.1包括的模板定义53 5.2.2独立的模板定义54 6.创建和使用模板61 6.1函数模板61 6.1.1函数模板声明61 6.1.2函数模板定义62 目录vii 6.1.3函数模板用法62 6.2类模板62 6.2.1类模板声明63 6.2.2类模板定义63 6.2.3类模板成员定义64 6.2.4类模板的用法65 6.3模板实例化65 6.3.1隐式模板实例化

10、65 6.3.2显式模板实例化66 6.4模板组合67 6.5缺省模板参数68 6.6模板专门化68 6.6.1模板专门化声明68 6.6.2模板专门化定义69 6.6.3模板专门化使用和实例化69 6.6.4部分专门化69 6.7模板问题部分610 6.7.1非本地名称解析和实例化610 6.7.2作为模板参数的本地类型611 6.7.3模板函数的友元声明612 6.7.4在模板定义内使用限定名称614 6.7.5嵌套模板名称614 6.7.6引用静态变量和静态函数615 6.7.7在同一目录中使用模板生成多个程序615 7.编译模板71 7.1冗余编译71 7.2系统信息库管理71 7.2

11、.1生成的实例71 viiiC+ 用户指南 2005 年 1 月 7.2.2整个类实例化72 7.2.3编译时实例化72 7.2.4模板实例的放置和链接72 7.3外部实例73 7.3.1静态实例74 7.3.2全局实例74 7.3.3显式实例75 7.3.4半显式实例75 7.4模板系统信息库75 7.4.1系统信息库结构75 7.4.2写入模板系统信息库76 7.4.3从多模板系统信息库读取76 7.4.4共享模板系统信息库76 7.4.5模板实例自动与 -instances=extern 一致76 7.5模板定义搜索77 7.5.1源文件位置约定77 7.5.2定义搜索路径77 7.5.

12、3诊断有问题的搜索77 7.6模板选项文件78 7.6.1注释78 7.6.2包括78 7.6.3源文件扩展名79 7.6.4定义源位置79 7.6.5模板专门化条目711 8.异常处理81 8.1同步和异步异常81 8.2指定运行时错误81 8.3禁用异常82 目录ix 8.4使用运行时函数和预定义的异常83 8.5将异常与信号和 Setjmp/Longjmp 混合84 8.6生成具有异常的共享库84 9.类型转换操作91 9.1const_cast92 9.2reinterpret_cast92 9.3static_cast93 9.4动态类型转换94 9.4.1将分层结构向上类型转换94

13、 9.4.2类型转换到 void*94 9.4.3将分层结构向下或交叉类型转换94 10.改善程序性能101 10.1避免临时对象101 10.2使用内联函数102 10.3使用缺省运算符102 10.4使用值类103 10.4.1选择直接传递类103 10.4.2在不同的处理器上直接传递类104 10.5缓存成员变量104 11.生成多线程程序111 11.1生成多线程程序111 11.1.1表明多线程编译112 11.1.2与线程和信号一起使用 C+ 支持库112 11.2在多线程程序中使用异常112 11.2.1线程取消112 11.3在线程之间共享 C+ 标准库对象113 11.4在多

14、线程环境中使用传统 iostream115 xC+ 用户指南 2005 年 1 月 11.4.1多线程安全的 iostream 库的组织116 11.4.2对 iostream 库进行接口更改1111 11.4.3全局和静态数据1114 11.4.4序列执行1114 11.4.5对象锁定1115 11.4.6多线程安全类1116 11.4.7对象析构1117 11.4.8示例应用程序1118 第 III 部分 库 12.使用库121 12.1C 库121 12.2C+ 编译器提供的库121 12.2.1C+ 库描述122 12.2.2访问 C+ 库的手册页123 12.2.3缺省 C+ 库12

15、4 12.3相关的库选项124 12.4使用类库126 12.4.1iostream 库126 12.4.2complex 库127 12.4.3链接 C+ 库129 12.5静态链接标准库129 12.6使用共享库1210 12.7替换 C+ 标准库1211 12.7.1可以替换的内容1212 12.7.2不可以替换的内容1212 12.7.3安装替换库1212 12.7.4使用替换库1212 目录xi 12.7.5标准头文件实现1213 13.使用 C+ 标准库131 13.1C+ 标准库头文件132 13.2C+ 标准库手册页133 13.3STLport1313 13.3.1重新分发和

16、支持的 STLport 库1314 14.使用传统 iostream 库141 14.1预定义的 iostream141 14.2iostream 交互的基本结构142 14.3使用传统 iostream 库143 14.3.1使用 iostream 进行输出143 14.3.2使用 iostream 进行输入146 14.3.3定义自己的提取运算符147 14.3.4使用 char* 提取器147 14.3.5读取任何单一字符148 14.3.6二进制输入148 14.3.7查看输入149 14.3.8提取空白149 14.3.9处理输入错误149 14.3.10使用具有 stdio 的 i

17、ostream1410 14.4创建 iostream1411 14.4.1处理使用类 fstream 的文件1411 14.5iostream 的赋值1414 14.6格式控制1414 14.7控制器1415 14.7.1使用无格式控制器1416 14.7.2参数化控制器1417 xiiC+ 用户指南 2005 年 1 月 14.8Strstream:数组的 iostream1418 14.9Stdiobuf:stdio 文件的 iostream1419 14.10 Streambuf 1419 14.10.1和 Streambuf 一起使用1419 14.10.2使用 Streambuf

18、1420 14.11 iostream 手册页1420 14.12 iostream 术语1422 15.使用复数运算库151 15.1复数库151 15.1.1使用复数库152 15.2类型 complex152 15.2.1类 complex 的构造函数152 15.2.2算法运算符153 15.3数学函数154 15.4错误处理155 15.5输入和输出156 15.6混合模式运算157 15.7效率157 15.8复数手册页158 16.生成库161 16.1了解库161 16.2生成静态 (归档)库162 16.3生成动态 (共享)库162 16.4生成包含异常的共享库163 16.

19、5生成专用的库164 16.6生成公用的库164 16.7生成具有 C API 的库164 目录xiii 16.8使用 dlopen 从 C 程序访问 C+ 库165 第 IV 部分 附录 A.C+ 编译器选项A1 A.1选项信息的结构A2 A.2选项参考A2 A.2.1-386A2 A.2.2-486A3 A.2.3-aA3 A.2.4-BbindingA3 A.2.5-cA4 A.2.6-cg89|92A5 A.2.7-compat=4|5A5 A.2.8+dA7 A.2.9-D name=defA8 A.2.10-dy|nA9 A.2.11-dalignA10 A.2.12-dryrun

20、A10 A.2.13-EA11 A.2.14+e0|1A12 A.2.15-erroff=tA12 A.2.16-errtags=aA13 A.2.17-errwarn=tA14 A.2.18-fastA15 A.2.19-features=a,a.A17 A.2.20-filt=filter,filter.A21 A.2.21-flagsA24 A.2.22-fnonstdA24 xivC+ 用户指南 2005 年 1 月 A.2.23-fns=yes|noA24 A.2.24-fprecision=pA26 A.2.25-fround=rA27 A.2.26-fsimple=nA28 A.

21、2.27-fstoreA29 A.2.28-ftrap=t,t.A29 A.2.29-GA31 A.2.30-gA32 A.2.31-g0A33 A.2.32-HA33 A.2.33-h nameA33 A.2.34-helpA34 A.2.35-IpathnameA34 A.2.36-I-A35 A.2.37-iA37 A.2.38-inlineA37 A.2.39-instances=aA37 A.2.40-instlib=filenameA38 A.2.41-KPICA39 A.2.42-KPICA40 A.2.43-keeptmpA40 A.2.44-LpathA40 A.2.45-l

22、libA40 A.2.46-libmieeeA41 A.2.47-libmilA41 A.2.48-library=l,l.A41 A.2.49-mcA45 A.2.50-migrationA45 目录xv A.2.51-misalignA45 A.2.52-mr,stringA46 A.2.53-mtA46 A.2.54-nativeA47 A.2.55-noexA47 A.2.56-nofstoreA47 A.2.57-nolibA48 A.2.58-nolibmilA48 A.2.59-noqueueA48 A.2.60-norunpathA48 A.2.61-OA48 A.2.62-O

23、levelA49 A.2.63-o filenameA49 A.2.64+pA49 A.2.65-PA50 A.2.66-pA50 A.2.67-pentiumA51 A.2.68-pgA51 A.2.69-PICA51 A.2.70-picA51 A.2.71-ptaA51 A.2.72-ptipathA51 A.2.73-ptoA52 A.2.74-ptrA52 A.2.75-ptvA52 A.2.76-Qoption phase option,option.A52 A.2.77-qoption phase optionA54 A.2.78-qpA54 xviC+ 用户指南 2005 年

24、1 月 A.2.79-Qproduce sourcetypeA54 A.2.80-qproduce sourcetypeA54 A.2.81-Rpathname:pathname.A54 A.2.82-readmeA55 A.2.83-SA55 A.2.84-sA55 A.2.85-sbA56 A.2.86-sbfastA56 A.2.87-staticlib=l,lA56 A.2.88-sync_stdio=yes|noA58 A.2.89-temp=pathA59 A.2.90-template=opt,opt.A59 A.2.91-timeA61 A.2.92-UnameA61 A.2.

25、93-unroll=nA62 A.2.94-VA62 A.2.95-vA62 A.2.96-vdelxA62 A.2.97-verbose=v,v_A63 A.2.98+wA64 A.2.99+w2A64 A.2.100-wA65 A.2.101-XmA65 A.2.102-xaA65 A.2.103-xalias_level=nA66 A.2.104-xarA68 A.2.105-xarch=isaA69 A.2.106-xautoparA73 目录xvii A.2.107-xbuiltin=%all|%noneA74 A.2.108-xcache=cA75 A.2.109-xcg89A77

26、 A.2.110-xcg92A77 A.2.111-xchar=oA77 A.2.112-xcheck=iA79 A.2.113-xchip=cA79 A.2.114-xcode=aA81 A.2.115-xcrossfile=nA83 A.2.116-xdepend=yes|noA84 A.2.117-xdumpmacros=value,value.A84 A.2.118-xeA89 A.2.119-xF=v,v.A89 A.2.120-xhelp=flagsA90 A.2.121-xhelp=readmeA90 A.2.122-xiaA91 A.2.123-xildoffA91 A.2.1

27、24-xildonA92 A.2.125-xinline=func_spec,func_spec.A92 A.2.126-xipo=0|1|2A94 A.2.127-xjobs=nA96 A.2.128-xlang=language,languageA97 A.2.129-xldscope=vA98 A.2.130-xlibmieeeA100 A.2.131-xlibmilA100 A.2.132-xlibmoptA100 A.2.133-xlic_lib=sunperfA101 A.2.134-xlicinfoA102 xviiiC+ 用户指南 2005 年 1 月 A.2.135-xlin

28、kopt=levelA102 A.2.136-xMA103 A.2.137-xM1A104 A.2.138-xMergeA104 A.2.139-xmaxopt=vA105 A.2.140-xmemalign=abA105 A.2.141-xnativeconnect=iA106 A.2.142-xnolibA107 A.2.143-xnolibmilA109 A.2.144-xnolibmoptA109 A.2.145-xOlevelA110 A.2.146-xopenmp=iA112 A.2.147-xpagesize=nA113 A.2.148-xpagesize_heap=nA114

29、A.2.149-xpagesize_stack=nA115 A.2.150-xpch=vA116 A.2.151-xpchstop=fileA119 A.2.152-xpgA119 A.2.153-xport64=(v)A120 A.2.154-xprefetch=a,a.A124 A.2.155-xprefetch_auto_type=aA126 A.2.156-xprefetch_level=iA126 A.2.157-xprofile=pA127 A.2.158-xprofile_ircache=pathA129 A.2.159-xprofile_pathmapA130 A.2.160-

30、xregs=r,r. A130 A.2.161-xrestrict=fA132 A.2.162-xsA134 目录xix A.2.163-xsafe=memA134 A.2.164-xsbA134 A.2.165-xsbfastA134 A.2.166-xspaceA135 A.2.167-xtarget=tA135 A.2.168-xthreadvar=oA142 A.2.169-xtimeA143 A.2.170-xtrigraphs=yes|noA143 A.2.171-xunroll=nA144 A.2.172-xustr=ascii_utf16_ushort|noA145 A.2.1

31、73-xvector=yes|noA146 A.2.174-xvis=yes|noA146 A.2.175-xweA146 A.2.176-Yc,pathA147 A.2.177-z argA148 B.PragmaB1 B.1Pragma 形式B1 B.1.1将函数作为 Pragma 参数进行重载B2 B.2Pragma 引用B2 B.2.1#pragma alignB4 B.2.2#pragma does_not_read_global_dataB4 B.2.3#pragma does_not_returnB5 B.2.4#pragma does_not_write_global_data

32、B5 B.2.5#pragma dumpmacrosB6 B.2.6#pragma end_dumpmacrosB7 B.2.7#pragma finiB7 B.2.8#pragma hdrstopB8 B.2.9#pragma identB8 xxC+ 用户指南 2005 年 1 月 B.2.10#pragma initB8 B.2.11#pragma no_side_effectB9 B.2.12#pragma optB9 B.2.13#pragma pack(n)B10 B.2.14#pragma rarely_calledB11 B.2.15#pragma returns_new_me

33、moryB12 B.2.16#pragma unknown_control_flowB12 B.2.17#pragma weakB13 术语表术语表 1 索引索引 1 xxi 表 表 P-1印刷约定xxviii 表 P-2代码约定xxviii 表 2-1C+ 编译器识别的文件名称后缀3 表 2-2C+ 编译系统的组件8 表 3-1选项语法格式示例1 表 3-2代码生成选项2 表 3-3编译时性能选项3 表 3-4调试选项3 表 3-5浮点选项4 表 3-6语言选项5 表 3-7库选项5 表 3-8许可证选项6 表 3-9废弃的选项7 表 3-10输出选项7 表 3-11运行时性能选项8 表 3

34、-12预处理程序选项10 表 3-13文件配置选项10 表 3-14参考选项11 表 3-15源文件选项11 表 3-16模板选项11 xxiiC+ 用户指南 2005 年 1 月 表 3-17线程选项12 表 4-1链接程序作用域声明说明符2 表 10-1在不同架构上结构和联合的传递4 表 11-1iostream 初始核心类6 表 11-2多线程安全的可重入公共函数7 表 12-1C+ 编译器附带的库2 表 12-2链接 C+ 库的编译器选项9 表 12-3头文件搜索示例14 表 13-1C+ 标准库头文件2 表 13-2C+ 标准库手册页3 表 14-1iostream 例程头文件3 表

35、 14-2iostream 预定义的控制器15 表 14-3iostream 手册页概述21 表 14-4iostream 术语22 表 15-1复数运算库函数4 表 15-2复数数学函数和三角函数4 表 15-3复数运算库函数的缺省错误处理6 表 15-4类型 complex 的手册页8 表 A-1选项语法格式示例1 表 A-2选项子节2 表 A-3预定义的宏8 表 A-4-erroff 值13 表 A-5-errwarn 值14 表 A-6-fast 扩展15 表 A-7兼容模式和标准模式的 -features 值18 表 A-8仅用于标准模式的 -features 值19 表 A-9仅用

36、于兼容模式的 -features 值20 表 A-10-filt 值22 表 A-11-fns 值25 表 A-12-fprecision 值26 表xxiii 表 A-13-fround 值27 表 A-14-fsimple 值28 表 A-15-ftrap 值30 表 A-16-instances 值38 表 A-17用于兼容模式的 -library 值41 表 A-18用于标准模式的 -library 值42 表 A-19-Qoption 值53 表 A-20-Qproduce 值54 表 A-21-staticlib 值56 表 A-22-template 值60 表 A-23-ver

37、bose 值63 表 A-24SPARC 平台的 -xarch 值69 表 A-25x86 平台的 -xarch 值72 表 A-26-xcache 的值76 表 A-27-xchar 值78 表 A-28-xcheck 值79 表 A-29-xchip 值80 表 A-30-xcode 值81 表 A-31-xcrossfile 值83 表 A-32-xdumpmacros 值85 表 A-33-xF 值90 表 A-34-xinline 值92 表 A-35-xipo 值94 表 A-36-xldscope 值99 表 A-37-xlinkopt 值102 表 A-38-xmemalign

38、 的对齐和行为值105 表 A-39-xmemalign 示例106 表 A-40-xnativeconnect 值107 表 A-41-xopenmp 值113 表 A-42-xport64 值120 xxivC+ 用户指南 2005 年 1 月 表 A-43-xprefetch 值124 表 A-44-xprefecth_level 值127 表 A-45-xregs 值131 表 A-46-xrestrict 值132 表 A-47SPARC 平台的 -xtarget 值136 表 A-48-xtarget 的 SPARC 平台名称136 表 A-49Intel 架构上的 -xtarge

39、t 扩展140 表 A-50-xthreadvar 的值142 表 A-51-xtrigraphs 值143 表 A-52-Y 标志147 表 B-1平台上最严格的对齐10 表 B-2存储大小和缺省对齐字节数11 xxv 代码样例 代码样例 6-1本地类型用作模板参数问题的示例11 代码样例 6-2友元声明问题的示例12 代码样例 7-1冗余定义条目9 代码样例 7-2静态数据成员的定义和简单名称的用法10 代码样例 7-3模板成员函数定义10 代码样例 7-4不同源文件中模板函数的定义10 代码样例 7-5nocheck 选项11 代码样例 7-6special 条目11 代码样例 7-7何

40、时应使用 special 条目的示例12 代码样例 7-8重载 special 条目12 代码样例 7-9专门化模板类12 代码样例 7-10专用化静态模板类成员13 代码样例 11-1检查错误状态8 代码样例 11-2调用 gcount9 代码样例 11-3用户定义的 I/O 操作9 代码样例 11-4禁用多线程安全10 代码样例 11-5切换到多线程不安全10 代码样例 11-6在多线程不安全的对象中使用同步11 代码样例 11-7新增类11 代码样例 11-8新增类的分层结构12 xxviC+ 用户指南 2005 年 1 月 代码样例 11-9新增函数12 代码样例 11-10使用锁定操

41、作的示例15 代码样例 11-11令 I/O 操作和错误检查独立化16 代码样例 11-12销毁共享对象17 代码样例 11-13以多线程安全方式使用 iostream 对象18 代码样例 14-1string 提取运算符7 代码样例 A-1预处理程序示例程序 foo.cc11 代码样例 A-2使用 -E 选项的 foo.cc 的预处理程序输出11 代码示例 0-1带两个指针的循环133 xxvii 开始之前 本手册指导您如何使用 Sun Studio 10 的 C+ 编译器, 并提供命令行编译器选项的详细信 息。本手册适用于熟悉 C+ 并对 Solaris 操作系统和 UNIX 命令有一定了

42、解的程序员。 本书的结构 本手册包含如下主题: C+ 编译器。第 1 章提供了关于编译的介绍性信息,诸如标准一致性和新特性。第 2 章 说明了如何使用编译器。第 3 章讨论了如何使用编译器的命令行选项。 编写 C+ 程序。第 4 章讨论了如何编译通常可被其他 C+ 编译器接受的非标准代码。 第 5 章建议设置和组织头文件和模板定义。第 6 章讨论了如何创建和使用模板。第 7 章 解释了用于编译模板的各种选项。第 8 章讨论了异常处理,类型转换操作的信息则位于 第 9 章。第 10 章讨论了显著影响 C+ 编译器的性能技术。第 11 章则提供了生成多线 程程序的信息。 库。第 12 章解释了如何

43、使用编译器提供的库。第 13 章讨论了 C+ 标准库。第 14 章讨 论了用于兼容模式的传统 iostream 库。第 15 章讨论了用于兼容模式的复数运算库。第 16 章则提供了关于生成库的信息。 xxviiiC+ 用户指南 2005 年 1 月 印刷约定 表 P-1 印刷约定 字样含义示例 AaBbCc123 命令、文件和目录的名称;计算机 屏幕输出 编辑您的 .login 文件。 使用 ls -a 列出所有文件。 % You have mail. AaBbCc123 输入的内容,以便与计算机屏幕输 出相区别 % su Password: AaBbCc123 书名、新词或术语以及要强调的词

44、请阅读用户指南的第 6 章。 这些称作类选项。 您必须是超级用户才能执行此操作。 AaBbCc123 命令行变量;用实际名称或值替换要删除文件,请键入 rm filename。 表 P-2 代码约定 代码符号含义表示法编码示例 括号包含可选参数。 On-O4, -O 大括号包含所需选项的选项集 合。 dy|n-dy | 分隔变量的 “|“ 或 “-“ 符号,只 能选择其一。 Bdynamic|static-Bstatic : 与逗号一样,分号有时可用于 分隔参数。 Rdir:dir-R/local/libs:/U/a . 省略号表示一系列省略。 xinline=f1,.fn-xinline=a

45、lpha,dos 开始之前xxix Shell 提示符 受支持的平台 此 Sun Studio 发行版本支持使用如下 SPARC 和 x86 系列处理器体系结构的系统: UltraSPARC、 SPARC64、 AMD64、 Pentium 和 Xeon EM64T。可从 http:/ 获得硬件兼容性列表,在列表中可以查看您 正在使用的 Solaris 操作系统版本所支持的系统。这些文档给出了平台类型间所有实现 的区别。 在本文档中,术语“x86”指采用兼容 AMD64 或 Intel Xeon/Pentium 产品系列处理器的 64 位和 32 位系统。有关受支持的系统,请参阅硬件兼容性列表

46、。 访问 Sun Studio 软件和手册页 编译器和工具以及它们的手册页并没有安装到标准的 /usr/bin/ 和 /usr/share/man 目录中。要访问编译器和工具,必须正确设置 PATH 环境变量 (请参阅参阅第 xxx 页 “访问编译器和工具” ) 。要访问手册页,必须正确设置 MANPATH 环境变量 (请参阅 第 xxx 页的 “访问手册页”一节) 。 关于 PATH 变量的更多信息,请参阅 csh(1)、sh(1) 和 ksh(1) 手册页。关于 MANPATH 变 量的更多信息,请参阅 man(1) 手册页。关于设置 PATH 变量和 MANPATH 变量以访问此 发行版

47、本的更多信息,请参阅安装指南或询问系统管理员。 Shell 提示符 C shellmachine-name% C shell 超级用户 machine-name# Bourne shell 和 Korn shell $ Bourne shell 和 Korn shell 的超级用户 # xxxC+ 用户指南 2005 年 1 月 注 本节中的信息假设 Sun Studio 编译器和工具安装在 /opt 目录中。如果软件没有安 装在 /opt 目录下,请通过系统管理员获取系统中的等效路径。 访问编译器和工具 使用下列步骤来决定是否需要更改 PATH 变量以访问编译器和工具。 决定是否需要设置 PATH 环境变量 1. 通过在命令提示符后输入下列内容以显示 PATH 变量的当前值。 2. 查看输出中是否有包含 /opt/SUNWspro/bin/ 的路径字符串。 如果找到该路径,您的 PATH 变量已经设置好,可以访问编译器和工具了。如果没有找 到该路径,按照下一步中的说明来设置

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1