GCC技术参考大全
- 编辑:admin -GCC技术参考大全
之后他插手PL/EXUS语言的一个编译措施(它的内部布局和GCC很是相似)的维护组,假如有足够支持就会将这些语言也插手GCC,有些计较机公司已经开始放弃本身的编译措施而选择简朴安装GCC编译措施了, 在已往几年里。
在本书中, 目录 第1部门 自由软件编译措施 第1章 GCC简介3 1.1 GNU3 1.2 丈量编译措施4 1.3 呼吁行选项4 1.4 平台5 1.5 编译措施的成果6 1.6 语言7 1.6.1 C是根基语言7 1.6.2 C++:第一个附加语言7 1.6.3 Objective-C8 1.6.4 Fortran8 1.6.5 Java8 1.6.6 Ada8 1.6.7 不再支持Chill9 1.7 部门列表9 1.8 联系方法11 第2章 查询与安装编译措施14 2.1 二进制代码下载15 2.2 FTP资源下载15 2.3 CVS资源下载17 2.3.1 以前的宣布版18 2.3.2 测试版18 2.4 编译和安装GCC19 2.4.1 安装历程19 2.4.2 配置选项20 2.5 binutils29 2.6 Win32二进制安装31 2.6.1 Cygwin31 2.6.2 安装31 2.7 运行测试包32 第2部门 使用编译措施荟萃 第3章 预处理惩罚措施37 3.1 指示字37 3.1.1 #define38 3.1.2 #error和#warning41 3.1.3 #if,正在进行的自由软件活动不必然是最重要的,重庆新闻,这些语言也都有许多编译措施。
虽然, 陪同着最近插手GCC家属的两种语言--Java和Ada--GCC编译措施的羽翼扩展得更大更广了,并且还能获得连续的成果扩展和维护,但这些编译措施中的绝大部门都是由GCC编写成并编译的,以及新插手GCC的将Java代码的成果,提供对家产卫星通信系统的多站位地面控制,并且它还在不绝地开发其他语言,软件的所有权正在由公司专有变为可按照任何目的自由获取和使用,并且当Java成为GCC语言的一部门后,#elif,另有一个事实就是所有的自由软件都是由GCC编译的,但我们确实正处于一个巨大的厘革的中心,Arthur Griffith开始转向编写计较机书籍、在线传授编程技能以及开发Java软件, 除此之外,囊括GCC为几利所有的平台和语言开发陈设务类软 件的技能细节,所有的自由软件都源起于GCC,接下来的项目就是为SATS语言开发了交互式的解释器和编译措施,从某些方面来看。
目前,以及某些用于呆板控制的非凡目的解释性语言的开发,他的许多软件开发项目都使用GCC,例如COBOL。
并且另有大量的东西,他所著的编程书籍范畴从Java、XML、and Jaxp到 COBOL for Dummies, 作译者 Arthur Griffith 从1977年开始他的第一份编程事情,图形化的用户界面情况,#else和#endif41 3.1.4 #ifdef,编写本书就成为他的一个方针,全书分为3个部门,甚至包罗整个操纵系统。
傍边解释了每种语言的呼吁行选项, 以后的项目则涉及了Forth解释器的开发、COBOL编译措施的扩展,自由软件不只包罗措施语言编译措施和连接措施,一号下载,详细措述了如 何乐成地综合使用多种语言开发应用措施,#else和#endif42 3.1.5 #include43 3.1.6 #include_next44 3.1.7 #line44 3.1.8 #pragma和_Pragma45 3.1.9 #undef46 3.1.10 ##46 3.2 预界说宏47 3.3 只包括一次头文件49 3.4 在堕落动静中包括定位信息50 3.5 去掉适当位置的源代码50 3.6 发生make措施的描述文件51 3.7 呼吁行选项和情况变量51 第4章 编译C措施53 4.1 编译基本53 4.1.1 单源措施到可执行措施54 4.1.2 源文件到方针文件54 4.1.3 多源文件到可执行文件55 4.1.4 预处理惩罚55 4.1.5 生成汇编语言56 4.1.6 建设静态库56 4.1.7 建设共享库57 4.1.8 重写命名约定58 4.2 尺度59 4.3 C语言扩展59 4.3.1 对齐60 4.3.2 匿名联合60 4.3.3 变长数组61 4.3.4 零长度数组61 4.3.5 属性63 4.3.6 返回值的复合语句68 4.3.7 条件操纵数省略69 4.3.8 枚举不完全类型70 4.3.9 函数参数结构70 4.3.10 函数内嵌71 4.3.11 函数名72 4.3.12 函数嵌套72 4.3.13 函数原型73 4.3.14 函数返回地点和仓库框架74 4.3.15 标识符74 4.3.16 整数75 4.3.17 改换要害字75 4.3.18 标识地点75 4.3.19 局部标识声明76 4.3.20 左值表达式(lvalue)77 4.3.21 具有可变参数的宏77 4.3.22 字符串78 4.3.23 指针算法78 4.3.24 Switch/Case分支语句78 4.3.25 typedef名字建设79 4.3.26 typeof引用80 4.3.27 联合强制类型转换80 第5章 编译C++措施82 5.1 编译基本82 5.1.1 单源文件到可执行文件82 5.1.2 多源文件到可执行文件83 5.1.3 源文件到方针文件84 5.1.4 预处理惩罚85 5.1.5 生成汇编语言85 5.1.6 建设静态库85 5.1.7 建设共享库87 5.2 C++语言的扩展成果89 5.2.1 属性89 5.2.2 头文件90 5.2.3 函数名90 5.2.4 接口与实现91 5.2.5 操纵符[?和]?92 5.2.6 约束93 5.3 编译措施操纵94 5.3.1 库94 5.3.2 mangling名字94 5.3.3 连接97 5.3.4 编译模板实例化98 第6章 编译Objective-C99 6.1 编译基本99 6.1.1 单独源文件到可执行措施99 6.1.2 编译工具100 6.1.3 建设静态连接库102 6.1.4 建设共享库104 6.2 Objective-C的扼要介绍105 6.2.1 预界说类型105 6.2.2 建设接口声明106 6.2.3 命名和mangling106 第7章 编译Fortran措施108 7.1 编译基本108 7.1.1 单独源文件到可执行措施108 7.1.2 多源文件到可执行措施109 7.1.3 生成汇编语言110 7.1.4 预处理惩罚110 7.1.5 建设静态库112 7.1.6 建设共享库113 7.2 Ratfor113 7.3 GNU Fortran扩展成果与变量115 7.3.1 内在函数115 7.3.2 源代码格局115 7.3.3 注释116 7.3.4 美元标记116 7.3.5 巨细写敏感116 7.3.6 非凡Fortran 90成果118 第8章 编译Java123 8.1 编译基本123 8.1.1 单一源文件到二进制可执行措施124 8.1.2 单一源文件到类文件124 8.1.3 单一源文件到二进制方针文件125 8.1.4 类文件到当地可执行措施125 8.1.5 多源文件到二进制可执行文件125 8.1.6 多输入文件到可执行措施127 8.1.7 生成汇编语言127 8.1.8 建设静态库128 8.1.9 建设共享库129 8.1.10 建设Jar文件129 8.2 Java东西130 8.2.1 gij130 8.2.2 jar131 8.2.3 gcjh132 8.2.4 jcf-dump134 8.2.5 jv-scan134 8.2.6 jv-convert135 8.2.7 grepjar136 8.3 RMI137 8.3.1 rmic138 8.3.2 rmiregistry139 8.4 属性139 第9章 编译Ada措施141 9.1 安装141 9.2 编译基本143 9.2.1 单独源文件到可执行措施144 9.2.2 多源文件到可执行措施145 9.2.3 源代码到汇编语言146 9.3 选项146 9.4 Ada东西150 9.4.1 gnatbind150 9.4.2 gnatlink153 9.4.3 gnatmake153 9.4.4 gnatchop155 9.4.5 gnatxref156 9.4.6 gnatfind157 9.4.7 gnatkr158 9.4.8 gnatprep158 9.4.9 gnatls159 9.4.10 gnatpsys和gnatpsta161 第10章 殽杂语言162 10.1 C++和C的殽杂162 10.1.1 在C++中调用C162 10.1.2 在C中调用C++163 10.2 殽杂Objective-C和C164 10.2.1 在Objective-C中调用C164 10.2.2 在C中调用Objective-C165 10.3 殽杂Java和C++166 10.3.1 建设Java字符串并调用静态要领167 10.3.2 加载并实例化Java类168 10.3.3 异常170 10.3.4 CNI的数据类型171 10.4 殽杂Java和C171 10.4.1 具有当处所法的Java类172 10.4.2 向当处所法通报参数173 10.4.3 在C代码中调用Java类要领175 10.5 殽杂Fortran和C177 10.5.1 从Fortran中调用C177 10.5.2 从C中调用Fortran178 10.6 殽杂Ada和C179 10.6.1 从Ada中调用C180 10.6.2 从Ada中调用C(带参数)181 第11章 国际化184 11.1 翻译的例子184 11.2 建设新的.po文件186 11.3 函数gettext()的用法189 11.3.1 静态字符串189 11.3.2 从其他域中进行翻译189 11.3.3 从其他域到指定类此外翻译190 11.3.4 多重模式190 11.3.5 来自其他域的多重模式190 11.3.6 某个类别其他域的多重模式190 11.4 归并两个.po文件190 11.5 由.po文件生成二进制的.mo文件192 第3部门 外设和内设 第12章 连接和库197 12.1 方针文件和库197 12.1.1 目录中的方针文件197 12.1.2 静态库中的方针文件198 12.1.3 动态库中的方针文件200 12.2 连接措施的前端200 12.3 定位库201 12.3.1 在连接时定位库201 12.3.2 运行时载入库201 12.4 从共享库中载入函数202 12.5 使用方针文件和库的东西措施204 12.5.1 配置查找共享库204 12.5.2 列举方针文件中的标记名205 12.5.3 去除方针文件中的无用信息207 12.5.4 列出共享库的依赖干系208 12.5.5 显示方针文件的内部布局209 第13章 使用GNU调试器212 13.1 调试信息格局212 13.1.1 STABS212 13.1.2 DWARF213 13.1.3 COFF213 13.1.4 XCOFF214 13.2 编译调试用措施214 13.3 将措施载入调试器215 13.4 执行过后查抄219 13.5 将调试器附带到运行措施上220 13.6 呼吁总结223 第14章 make和Autoconf225 14.1 make225 14.1.1 内部界说227 14.1.2 如何编写makefile228 14.1.3 make的选项229 14.2 Autoconf232 第15章 GNU汇编器237 15.1 用呼吁行进行汇编237 15.2 绝对、相对以及界限239 15.3 内嵌汇编240 15.4 汇编器指示字243 第16章 交错编译及窗体端口254 16.1 方针机254 16.2 建设交错编译措施255 16.2.1 安装当地编译措施255 16.2.2 为方针呆板成立binutils256 16.2.3 安装方针呆板的文件257 16.2.4 可配置库libgcc1.a257 16.2.5 结构交错编译措施257 16.2.6 运行交错编译措施258 16.3 MinGW258 16.4 Cygwin259 16.4.1 编译简朴的Cygwin操纵台措施259 16.4.2 编译Cygwin GUI措施260 第17章 嵌入式系统261 17.1 成立编译措施和连接措施261 17.2 选择一种语言262 17.3 GCC嵌入东西263 17.3.1 呼吁行选项263 17.3.2 诊断264 17.3.3 汇编器代码264 17.4 库264 17.4.1 整顿尺度库265 17.4.2 为嵌入式系统设计的库265 17.5 GNU连接措施脚本语言265 17.5.1 脚本例子1266 17.5.2 脚本例子2267 17.5.3 其他脚本呼吁268 第18章 编译措施输出269 18.1 措施信息269 18.1.1 解析树269 18.1.2 头文件270 18.1.3 措施需要的内存271 18.1.4 时耗272 18.1.5 C++中间树272 18.1.6 C++类条理273 18.2 有关makefile的信息273 18.3 编译措施信息274 18.3.1 编译时间275 18.3.2 子进程开关275 18.3.3 详细的编译措施调试信息276 18.4 关于文件和目录的信息279 第19章 实现一种语言280 19.1 从前到后280 19.2 词法扫视281 19.2.1 简朴的词法扫视措施282 19.2.2 Lex的正则表达式282 19.3 语法阐明283 19.4 建设解析树288 19.5 连接后端与前端289 第20章 寄存器传送语言292 20.1 RTL insn292 20.1.1 6种根基表达式代码292 20.1.2 insn的类型和内容294 20.2 模式和模式类310 20.3 符号312 第21章 呆板相关的编译措施选项314 21.1 呆板列表314 21.2 GCC呼吁行选项315 21.2.1 Alpha选项315 21.2.2 Alpha/VMS选项320 21.2.3 ARC选项320 21.2.4 ARM选项320 21.2.5 AVR选项325 21.2.6 CRIS选项326 21.2.7 D30V选项329 21.2.8 H8/300选项330 21.2.9 HPPA选项330 21.2.10 IA-64选项332 21.2.11 Intel 386和AMD x86-64选项334 21.2.12 Intel 960选项339 21.2.13 M32R/D选项340 21.2.14 M680x0选项341 21.2.15 M68HClx选项344 21.2.16 M88K选项344 21.2.17 MCore选项347 21.2.18 MIPS选项348 21.2.19 MMIX选项354 21.2.20 MN10200选项355 21.2.21 MN10300选项355 21.2.22 NS32K选项356 21.2.23 PDP-11选项358 21.2.24 RS/6000和PowerPC选项359 21.2.25 RT选项368 21.2.26 S/390和zSeries选项369 21.2.27 SH选项370 21.2.28 SPARC选项372 21.2.29 System V选项376 21.2.30 TMS320C3x/C4x选项376 21.2.31 V850选项379 21.2.32 VAX选项380 21.2.33 Xstormy16选项380 第4部门 附录 附录A GNU通用大众许可证383 附录B 情况变量389 附录C 呼吁行比较表393 附录D 呼吁行选项400 D.1 选项前缀400 D.1.1 呼吁行的顺序401 D.1.2 文件类型401 D.2 选项字母顺序列表402 附录E 术语表480 , 内容简介 书籍 计较机书籍 [font color="#FF6600">本书内容特色: ·在各类UNIX平台(包罗Linux和BSD)上开发和陈设软件 ·安装并使用本身的编译器编译C、C++、Objective c、Fortran、Java 和Ada ·为浩瀚平台生成当地可执行代码[/font> 固然在当今的计较机界中,因此可否将GCC称作软件世界中最重要的一部门也就值得探讨了,这使得GCC可用的语言到达6种:C、C++、Objective-C、Fortran、Java和Ada。
别的还近索了一些令人奋的可能实现的新编程要领,计较机咨询师Arthur Giffith提供了最重要的开源软件——GCC的大量信息,开发过编译措施、解释器、连接措施以及汇编器,曾作为小构成员为某些非凡用途的计较机开发过汇编器和连接措施,有许多种语言可用于编写措施,个中之一是一种交互式呼吁语言,www.513cy.cn,使用GCC是免费的,并总结了种种东西软件的用法,。