当前位置:首页 > 工业技术
GCC技术参考大全
GCC技术参考大全

GCC技术参考大全PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)Arthur Griffith著;胡恩华译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302088438
  • 页数:499 页
图书介绍:GCC(GNU编译器集合)是目前最重要、应用最广的开放源代码软件。在本书中,专家Arthur Griffith提供了大量关于这种开源软件的信息,教您学会使用GCC为几乎所有的平台和语言开发及部署各类软件。本书分为3个部分。第1部分,“自由软件编译器”,介绍了编译器的一些基础知识,以及一些可以用来下载和安装编译器的指令。第2部分,“使用编译器集合”,包含对编译器指令的详细介绍。对6种主要的编程语言各用了一章的篇幅(并辅以一些实例)进行说明。另有一个特殊章节用来描述预处理器以及连接由不同语言产生的目标文件的技术。第3部分,“外设和内设”,介绍了连接、调试、交叉编译、make文件和GNU汇编器。第3部分也包含了编译器前端和后端的内部工作信息。本书是开源软件开发人员的必备学习资源,对广大的程序员而言,亦是一个有用的学习参考。
《GCC技术参考大全》目录

第1章 GCC简介 3

1.1 GNU 3

第1部分 自由软件编译程序 3

1.2 测量编译程序 4

1.3 命令行选项 4

1.4 平台 5

1.5 编译程序的功能 6

1.6.1 C是基本语言 7

1.6.2 C++:第一个附加语言 7

1.6 语言 7

1.6.3 Objective-C 8

1.6.4 Fortran 8

1.6.5 Java 8

1.6.6 Ada 8

1.6.7 不再支持Chill 9

1.7 部分列表 9

1.8 联系方式 11

第2章 查询与安装编译程序 14

2.1 二进制代码下载 15

2.2 FTP资源下载 15

2.3 CVS资源下载 17

2.3.2 测试版 18

2.3.1 以前的发布版 18

2.4 编译和安装GCC 19

2.4.1 安装过程 19

2.4.2 配置选项 20

2.5 binutils 29

2.6 Win32二进制安装 31

2.6.1 Cygwin 31

2.6.2 安装 31

2.7 运行测试包 32

3.1 指示字 37

第2部分 使用编译程序集合 37

第3章 预处理程序 37

3.1.1 #define 38

3.1.2 #error和#warning 41

3.1.3 #if,#elif,#else和#endif 41

3.1.4 #ifdef,#else和#endif 42

3.1.5 #include 43

3.1.6 #includenext 44

3.1.7 #line 44

3.1.8 #pragma和_Pragma 45

3.1.10 46

3.1.9 #undef 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.2 源文件到目标文件 54

4.1.1 单源程序到可执行程序 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.4 零长度数组 61

4.3.3 变长数组 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.15 标识符 74

4.3.14 函数返回地址和堆栈框架 74

4.3.16 整数 75

4.3.17 更换关键字 75

4.3.18 标识地址 75

4.3.19 局部标识声明 76

4.3.20 左值表达式(1value) 77

4.3.21 具有可变参数的宏 77

4.3.22 字符串 78

4.3.23 指针算法 78

4.3.24 SwitchLCase分支语句 78

4.3.25 typedef名字创建 79

4.3.27 联合强制类型转换 80

4.3.26 typeof引用 80

5.1 编译基础 82

5.1.1 单源文件到可执行文件 82

第5章 编译C++程序 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.1 属性 89

5.2 C++语言的扩展功能 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-C 99

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.3 命名和mangling 106

6.2.2 创建接口声明 106

第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 Ratfor 113

7.3.1 内在函数 115

7.3.2 源代码格式 115

7.3 GNUFortran扩展功能与变量 115

7.3.3 注释 116

7.3.4 美元符号 116

7.3.5 大小写敏感 116

7.3.6 特殊Fortran90功能 118

第8章编译Java 123

8.1 编译基础 123

8.1.1 单一源文件到二进制可执行 124

程序 124

8.1.2 单一源文件到类文件 124

8.1.5 多源文件到二进制可执行文件 125

8.1.3 单一源文件到二进制目标文件 125

8.1.4 类文件到本地可执行程序 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 gij 130

8.2.2 jar 131

8.2.3 gcjh 132

8.2.4 jcf-dump 134

8.2.5 iv-scan 134

8.2.6 jv-conveg 135

8.2.7 grepjar 136

8.3 RMI 137

8.3.1 rmic 138

8.3.2 rmiregistry 139

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 gnatbind 150

9.4.2 gnatlink 153

9.4.3 gnatmake 153

9.4.4 gnatchop 155

9.4.5 gnatxref 156

9.4.6 gnatfind 157

9.4.8 gnatprep 158

9.4.7 gnatkr 158

9.4.9 gnatls 159

9.4.1 0gnatpsys和gnatpsta 161

第10章 混合语言 162

10.1 C++和C的混合 162

10.1.1 在C++中调用C 162

10.1.2 在C中调用C++ 163

10.2 混合Obiective-C和C 164

10.2.1 在Objective-C中调用C 164

10.2.2 在C中调用Obiective-C 165

10.3 混合Java和C++ 166

10.3.1 创建Java字符串并调用静态 167

方法 167

10.3.2 加载并实例化Java类 168

10.3.3 异常 170

10.3.4 CNI的数据类型 171

10.4 混合1ava和C 171

10.4.1 具有本地方法的Java类 172

10.412 向本地方法传递参数 173

10.4.3 在C代码中调用Java类方法 175

10.5.1 从.Fortran中调用C 177

10.5 混合Fortran和C 177

10.5.2 从C中调用Fortran 178

10.6 混合Ada和C 179

10.6.1 从.Ada中调用C 180

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.6 某个类别其他域的多重模式 190

11.4 合并两个.po文件 190

11.3.3 从其他域到指定类别的翻译 190

11.3.5 来自其他域的多重模式 190

11.3.4 多重模式 190

11.5 由.po文件生成二进制的.mo文件 192

第3部分 外设和内设 197

第12章 连接和库 197

12.1 目标文件和库 197

12.1.1 目录中的目标文件 197

12.1.2 静态库中的目标文件 198

12.2 连接程序的前端 200

12.1.3 动态库中的目标文件 200

12.3.1 在连接时定位库 201

12.3.2 运行时载入库 201

12.3 定位库 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.1.1 STABS 212

第13章 使用GNU调试器 212

13.1 调试信息格式 212

13.1.2 DWARF 213

13.1.3 COFF 213

13.1.4 XCOFF 214

13.2 编译调试用程序 214

13.3 将程序载入调试器 215

13.4 执行事后检查 219

13.5 将调试器附带到运行程序上 220

13.6 命令总结 223

14.1 make 225

第14章 make和Autoconf 225

14.1.1 内部定义 227

14.1.2 如何编写makefile 228

14.1.3 make的选项 229

14.2 Autoconf 232

第15章 GNU汇编器 237

15.1 用命令行进行汇编 237

15.2 绝对、相对以及边界 239

15.3 内嵌汇编 240

15.4 汇编器指示字 243

16.1 目标机 254

第16章 交叉编译及窗体端口 254

16.2 创建交叉编译程序 255

16.2.1 安装本地编译程序 255

16.2.2 为目标机器建立binutils 256

16.2.3 安装目标机器的文件 257

16.2.4 可配置库libgccl.a 257

16.2.5 构造交叉编译程序 257

16.2.6 运行交叉编译程序 258

16.3 MinGW 258

程序 259

16.4.1 编译简单的Cygwin操作台 259

16.4 Cygwin 259

16.4.2 编译CygwinGUI程序 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.5 GNU连接程序脚本语言 265

17.4.1 整顿标准库 265

17.4.2 为嵌入式系统设计的库 265

17.5.1 脚本例子1 266

17.5.2 脚本例子2 267

17.5.3 其他脚本命令 268

第18章 编译程序输出 269

18.1 程序信息 269

18.1.1 解析树 269

18.1.2 头文件 270

18.1.3 程序需要的内存 271

18.1.5 C++中间树 272

18.1.4 时耗 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 RTLinsn 292

20.1.16 种基本表达式代码 292

20.1.2 insn的类型和内容 294

20.2 模式和模式类 310

20.3 标志 312

21.1 机器列表 314

第21章 机器相关的编译程序选项 314

21.2 GCC命令行选项 315

21.2.1 Alpha选项 315

21.2.2 AlphaLVMS选项 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.9 HPPA选项 330

21.2.8 H8L300选项 330

21.2.10 IA-64选项 332

21.2.11 Intel386和AMDx86-64选项 334

21.2.12 Inte1960选项 339

21.2.13 M32RLD选项 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 N10200选项 355

21.2.21 MN10300选项 355

21.2.22 NS32K选项 356

21.2.23 PDP-11选项 358

21.2.24 RSL6000和PowerPC选项 359

21.2.25 RT选项 368

21.2.26 SL390和zSeries选项 369

21.2.27 SH选项 370

21.2.28 SPARC选项 372

21.2.30 TMS320C3xLC4x选项 376

21.2.29 SystemV选项 376

21.2.31 V850选项 379

21.2.32 VAX选项 380

21.2.33 Xstormy16选项*380++第4部分 附录附录 AGNU通用公共许可证 383

附录 B环境变量 389

附录 C命令行对照表 393

附录 D命令行选项 400

D.1 选项前缀 400

D.1.1 命令行的顺序 401

D.1.2 文件类型 401

D.2 选项字母顺序列表 402

附录 E术语表 480

返回顶部