注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計匯編語言/編譯原理GCC技術(shù)參考大全

GCC技術(shù)參考大全

GCC技術(shù)參考大全

定 價:¥59.00

作 者: (美)Arthur Griffith著;胡恩華譯;胡恩華譯
出版社: 清華大學出版社
叢編項:
標 簽: 高級程序語言設(shè)計

ISBN: 9787302088431 出版時間: 2004-06-01 包裝: 膠版紙
開本: 23cm 頁數(shù): 516 字數(shù):  

內(nèi)容簡介

  本書內(nèi)容特色:·在各種UNIX平臺(包括Linux和BSD)上開發(fā)和部署軟件·安裝并使用自己的編譯器編譯C、C++、Objectivec、Fortran、Java和Ada·為眾多平臺生成本地可執(zhí)行代碼雖然在當今的計算機界中,正在進行的自由軟件運動不一定是最重要的,但我們確實正處于一個巨大的變革的中心。軟件的所有權(quán)正在由公司專有變?yōu)榭筛鶕?jù)任何目的自由獲取和使用。目前,自由軟件不僅包括程序語言編譯程序和連接程序,而且還有大量的工具,圖形化的用戶界面環(huán)境,甚至包括整個操作系統(tǒng)。除此之外,還有一個事實就是所有的自由軟件都是由GCC編譯的,因此可否將GCC稱作軟件世界中最重要的一部分也就值得探討了。當然,有很多種語言可用于編寫程序,這些語言也都有很多編譯程序,但這些編譯程序中的絕大部分都是由GCC編寫成并編譯的。從某些方面來看,所有的自由軟件都源起于GCC。有些計算機公司已經(jīng)開始放棄自己的編譯程序而選擇簡單安裝GCC編譯程序了。使用GCC是免費的,而且還能得到持續(xù)的功能擴展和維護。伴隨著最近加入GCC家族的兩種語言:Java和Ada:GCC編譯程序的羽翼擴展得更大更廣了。這使得GCC可用的語言達到6種:C、C++、Objective-C、Fortran、Java和Ada。而且它還在不斷地開發(fā)其他語言,例如COBOL,如果有足夠支持就會將這些語言也加入GCC。

作者簡介

  Arthur Griffith 從1997開始他的第一價編程工作,開發(fā)達編譯程序、解釋器、邊接程序以及匯編器,曾作為小組成員為某些特殊用作的計算機開發(fā)過匯編器和連接程序。之后他加入PL/EXUS語言的編譯程序的維護組。裝下來的項目就是為SATS語言開發(fā)了交互式的解釋器和編譯程序。

圖書目錄

第1部分  自由軟件編譯程序
 
第1章  GCC簡介  3
1.1  GNU  3
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-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  聯(lián)系方式  11
第2章  查詢與安裝編譯程序  14
2.1  二進制代碼下載  15
2.2  FTP資源下載  15
2.3  CVS資源下載  17
2.3.1  以前的發(fā)布版  18
2.3.2  測試版  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
 
第2部分  使用編譯程序集合
 
第3章  預處理程序  37
3.1  指示字  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  #include_next  44
3.1.7  #line  44
3.1.8  #pragma和_Pragma  45
3.1.9  #undef  46
3.1.10  ##  46
3.2  預定義宏  47
3.3  只包含一次頭文件  49
3.4  在出錯消息中包含定位信息  50
3.5  去掉適當位置的源代碼  50
3.6  產(chǎn)生make程序的描述文件  51
3.7  命令行選項和環(huán)境變量  51
第4章  編譯C程序  53
4.1  編譯基礎(chǔ)  53
4.1.1  單源程序到可執(zhí)行程序  54
4.1.2  源文件到目標文件  54
4.1.3  多源文件到可執(zhí)行文件  55
4.1.4  預處理  55
4.1.5  生成匯編語言  56
4.1.6  創(chuàng)建靜態(tài)庫  56
4.1.7  創(chuàng)建共享庫  57
4.1.8  重寫命名約定  58
4.2  標準  59
4.3  C語言擴展  59
4.3.1  對齊  60
4.3.2  匿名聯(lián)合  60
4.3.3  變長數(shù)組  61
4.3.4  零長度數(shù)組  61
4.3.5  屬性  63
4.3.6  返回值的復合語句  68
4.3.7  條件操作數(shù)省略  69
4.3.8  枚舉不完全類型  70
4.3.9  函數(shù)參數(shù)構(gòu)造  70
4.3.10  函數(shù)內(nèi)嵌  71
4.3.11  函數(shù)名  72
4.3.12  函數(shù)嵌套  72
4.3.13  函數(shù)原型  73
4.3.14  函數(shù)返回地址和堆棧框架  74
4.3.15  標識符  74
4.3.16  整數(shù)  75
4.3.17  更換關(guān)鍵字  75
4.3.18  標識地址  75
4.3.19  局部標識聲明  76
4.3.20  左值表達式(lvalue)  77
4.3.21  具有可變參數(shù)的宏  77
4.3.22  字符串  78
4.3.23  指針算法  78
4.3.24  Switch/Case分支語句  78
4.3.25  typedef名字創(chuàng)建  79
4.3.26  typeof引用  80
4.3.27  聯(lián)合強制類型轉(zhuǎn)換  80
第5章  編譯C++程序  82
5.1  編譯基礎(chǔ)  82
5.1.1  單源文件到可執(zhí)行文件  82
5.1.2  多源文件到可執(zhí)行文件  83
5.1.3  源文件到目標文件  84
5.1.4  預處理  85
5.1.5  生成匯編語言  85
5.1.6  創(chuàng)建靜態(tài)庫  85
5.1.7  創(chuàng)建共享庫  87
5.2  C++語言的擴展功能  89
5.2.1  屬性  89
5.2.2  頭文件  90
5.2.3  函數(shù)名  90
5.2.4  接口與實現(xiàn)  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  編譯基礎(chǔ)  99
6.1.1  單獨源文件到可執(zhí)行程序  99
6.1.2  編譯對象  100
6.1.3  創(chuàng)建靜態(tài)連接庫  102
6.1.4  創(chuàng)建共享庫  104
6.2  Objective-C的簡要介紹  105
6.2.1  預定義類型  105
6.2.2  創(chuàng)建接口聲明  106
6.2.3  命名和mangling  106
第7章  編譯Fortran程序  108
7.1  編譯基礎(chǔ)  108
7.1.1  單獨源文件到可執(zhí)行程序  108
7.1.2  多源文件到可執(zhí)行程序  109
7.1.3  生成匯編語言  110
7.1.4  預處理  110
7.1.5  創(chuàng)建靜態(tài)庫  112
7.1.6  創(chuàng)建共享庫  113
7.2  Ratfor  113
7.3  GNU Fortran擴展功能與變量  115
7.3.1  內(nèi)在函數(shù)  115
7.3.2  源代碼格式  115
7.3.3  注釋  116
7.3.4  美元符號  116
7.3.5  大小寫敏感  116
7.3.6  特殊Fortran 90功能  118
第8章  編譯Java  123
8.1  編譯基礎(chǔ)  123
8.1.1  單一源文件到二進制可執(zhí)行
程序  124
8.1.2  單一源文件到類文件  124
8.1.3  單一源文件到二進制目標文件  125
8.1.4  類文件到本地可執(zhí)行程序  125
8.1.5  多源文件到二進制可執(zhí)行文件  125
8.1.6  多輸入文件到可執(zhí)行程序  127
8.1.7  生成匯編語言  127
8.1.8  創(chuàng)建靜態(tài)庫  128
8.1.9  創(chuàng)建共享庫  129
8.1.10  創(chuàng)建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  jv-scan  134
8.2.6  jv-convert  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  編譯基礎(chǔ)  143
9.2.1  單獨源文件到可執(zhí)行程序  144
9.2.2  多源文件到可執(zhí)行程序  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.7  gnatkr  158
9.4.8  gnatprep  158
9.4.9  gnatls  159
9.4.10  gnatpsys和gnatpsta  161
第10章  混合語言  162
10.1  C++和C的混合  162
10.1.1  在C++中調(diào)用C  162
10.1.2  在C中調(diào)用C++  163
10.2  混合Objective-C和C  164
10.2.1  在Objective-C中調(diào)用C  164
10.2.2  在C中調(diào)用Objective-C  165
10.3  混合Java和C++  166
10.3.1  創(chuàng)建Java字符串并調(diào)用靜態(tài)
方法  167
10.3.2  加載并實例化Java類  168
10.3.3  異常  170
10.3.4  CNI的數(shù)據(jù)類型  171
10.4  混合Java和C  171
10.4.1  具有本地方法的Java類  172
10.4.2  向本地方法傳遞參數(shù)  173
10.4.3  在C代碼中調(diào)用Java類方法  175
10.5  混合Fortran和C  177
10.5.1  從Fortran中調(diào)用C  177
10.5.2  從C中調(diào)用Fortran  178
10.6  混合Ada和C  179
10.6.1  從Ada中調(diào)用C  180
10.6.2  從Ada中調(diào)用C(帶參數(shù))  181
第11章  國際化  184
11.1  翻譯的例子  184
11.2  創(chuàng)建新的.po文件  186
11.3  函數(shù)gettext()的用法  189
11.3.1  靜態(tài)字符串  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部分  外設(shè)和內(nèi)設(shè)
 
第12章  連接和庫  197
12.1  目標文件和庫  197
12.1.1  目錄中的目標文件  197
12.1.2  靜態(tài)庫中的目標文件  198
12.1.3  動態(tài)庫中的目標文件  200
12.2  連接程序的前端  200
12.3  定位庫  201
12.3.1  在連接時定位庫  201
12.3.2  運行時載入庫  201
12.4  從共享庫中載入函數(shù)  202
12.5  使用目標文件和庫的工具程序  204
12.5.1  配置查找共享庫  204
12.5.2  列舉目標文件中的符號名  205
12.5.3  去除目標文件中的無用信息  207
12.5.4  列出共享庫的依賴關(guān)系  208
12.5.5  顯示目標文件的內(nèi)部結(jié)構(gòu)  209
第13章  使用GNU調(diào)試器  212
13.1  調(diào)試信息格式  212
13.1.1  STABS  212
13.1.2  DWARF  213
13.1.3  COFF  213
13.1.4  XCOFF  214
13.2  編譯調(diào)試用程序  214
13.3  將程序載入調(diào)試器  215
13.4  執(zhí)行事后檢查  219
13.5  將調(diào)試器附帶到運行程序上  220
13.6  命令總結(jié)  223
第14章  make和Autoconf  225
14.1  make  225
14.1.1  內(nèi)部定義  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  內(nèi)嵌匯編  240
15.4  匯編器指示字  243
第16章  交叉編譯及窗體端口  254
16.1  目標機  254
16.2  創(chuàng)建交叉編譯程序  255
16.2.1  安裝本地編譯程序  255
16.2.2  為目標機器建立binutils  256
16.2.3  安裝目標機器的文件  257
16.2.4  可配置庫libgcc1.a  257
16.2.5  構(gòu)造交叉編譯程序  257
16.2.6  運行交叉編譯程序  258
16.3  MinGW  258
16.4  Cygwin  259
16.4.1  編譯簡單的Cygwin操作臺
程序  259
16.4.2  編譯Cygwin GUI程序  260
第17章  嵌入式系統(tǒng)  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  為嵌入式系統(tǒng)設(shè)計的庫  265
17.5  GNU連接程序腳本語言  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  程序需要的內(nèi)存  271
18.1.4  時耗  272
18.1.5  C++中間樹  272
18.1.6  C++類層次  273
18.2  有關(guān)makefile的信息  273
18.3  編譯程序信息  274
18.3.1  編譯時間  275
18.3.2  子進程開關(guān)  275
18.3.3  詳細的編譯程序調(diào)試信息  276
18.4  關(guān)于文件和目錄的信息  279
第19章  實現(xiàn)一種語言  280
19.1  從前到后  280
19.2  詞法掃視  281
19.2.1  簡單的詞法掃視程序  282
19.2.2  Lex的正則表達式  282
19.3  語法分析  283
19.4  創(chuàng)建解析樹  288
19.5  連接后端與前端  289
第20章  寄存器傳送語言  292
20.1  RTL insn  292
20.1.1  6種基本表達式代碼  292
20.1.2  insn的類型和內(nèi)容  294
20.2  模式和模式類  310
20.3  標志  312
第21章  機器相關(guān)的編譯程序選項  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  環(huán)境變量  389
附錄C  命令行對照表  393
附錄D  命令行選項  400
D.1  選項前綴  400
D.1.1  命令行的順序  401
D.1.2  文件類型  401
D.2  選項字母順序列表  402
附錄E  術(shù)語表  480

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號