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

GCC技術(shù)參考大全

GCC技術(shù)參考大全

定 價:¥59.00

作 者: (美)Arthur Griffith著;胡恩華譯;胡恩華譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 高級程序語言設(shè)計(jì)

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

第1部分  自由軟件編譯程序
 
第1章  GCC簡介  3
1.1  GNU  3
1.2  測量編譯程序  4
1.3  命令行選項(xiàng)  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  二進(jìn)制代碼下載  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  配置選項(xiàng)  20
2.5  binutils  29
2.6  Win32二進(jìn)制安裝  31
2.6.1  Cygwin  31
2.6.2  安裝  31
2.7  運(yùn)行測試包  32
 
第2部分  使用編譯程序集合
 
第3章  預(yù)處理程序  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  預(yù)定義宏  47
3.3  只包含一次頭文件  49
3.4  在出錯消息中包含定位信息  50
3.5  去掉適當(dāng)位置的源代碼  50
3.6  產(chǎn)生make程序的描述文件  51
3.7  命令行選項(xiàng)和環(huán)境變量  51
第4章  編譯C程序  53
4.1  編譯基礎(chǔ)  53
4.1.1  單源程序到可執(zhí)行程序  54
4.1.2  源文件到目標(biāo)文件  54
4.1.3  多源文件到可執(zhí)行文件  55
4.1.4  預(yù)處理  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  標(biāo)準(zhǔn)  59
4.3  C語言擴(kuò)展  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  返回值的復(fù)合語句  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  標(biāo)識符  74
4.3.16  整數(shù)  75
4.3.17  更換關(guān)鍵字  75
4.3.18  標(biāo)識地址  75
4.3.19  局部標(biāo)識聲明  76
4.3.20  左值表達(dá)式(lvalue)  77
4.3.21  具有可變參數(shù)的宏  77
4.3.22  字符串  78
4.3.23  指針?biāo)惴?nbsp; 78
4.3.24  Switch/Case分支語句  78
4.3.25  typedef名字創(chuàng)建  79
4.3.26  typeof引用  80
4.3.27  聯(lián)合強(qiáng)制類型轉(zhuǎn)換  80
第5章  編譯C++程序  82
5.1  編譯基礎(chǔ)  82
5.1.1  單源文件到可執(zhí)行文件  82
5.1.2  多源文件到可執(zhí)行文件  83
5.1.3  源文件到目標(biāo)文件  84
5.1.4  預(yù)處理  85
5.1.5  生成匯編語言  85
5.1.6  創(chuàng)建靜態(tài)庫  85
5.1.7  創(chuàng)建共享庫  87
5.2  C++語言的擴(kuò)展功能  89
5.2.1  屬性  89
5.2.2  頭文件  90
5.2.3  函數(shù)名  90
5.2.4  接口與實(shí)現(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  編譯模板實(shí)例化  98
第6章  編譯Objective-C  99
6.1  編譯基礎(chǔ)  99
6.1.1  單獨(dú)源文件到可執(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  預(yù)定義類型  105
6.2.2  創(chuàng)建接口聲明  106
6.2.3  命名和mangling  106
第7章  編譯Fortran程序  108
7.1  編譯基礎(chǔ)  108
7.1.1  單獨(dú)源文件到可執(zhí)行程序  108
7.1.2  多源文件到可執(zhí)行程序  109
7.1.3  生成匯編語言  110
7.1.4  預(yù)處理  110
7.1.5  創(chuàng)建靜態(tài)庫  112
7.1.6  創(chuàng)建共享庫  113
7.2  Ratfor  113
7.3  GNU Fortran擴(kuò)展功能與變量  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  單一源文件到二進(jìn)制可執(zhí)行
程序  124
8.1.2  單一源文件到類文件  124
8.1.3  單一源文件到二進(jìn)制目標(biāo)文件  125
8.1.4  類文件到本地可執(zhí)行程序  125
8.1.5  多源文件到二進(jìn)制可執(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  單獨(dú)源文件到可執(zhí)行程序  144
9.2.2  多源文件到可執(zhí)行程序  145
9.2.3  源代碼到匯編語言  146
9.3  選項(xiàng)  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  加載并實(shí)例化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  從其他域中進(jìn)行翻譯  189
11.3.3  從其他域到指定類別的翻譯  190
11.3.4  多重模式  190
11.3.5  來自其他域的多重模式  190
11.3.6  某個類別其他域的多重模式  190
11.4  合并兩個.po文件  190
11.5  由.po文件生成二進(jìn)制的.mo文件  192
 
第3部分  外設(shè)和內(nèi)設(shè)
 
第12章  連接和庫  197
12.1  目標(biāo)文件和庫  197
12.1.1  目錄中的目標(biāo)文件  197
12.1.2  靜態(tài)庫中的目標(biāo)文件  198
12.1.3  動態(tài)庫中的目標(biāo)文件  200
12.2  連接程序的前端  200
12.3  定位庫  201
12.3.1  在連接時定位庫  201
12.3.2  運(yùn)行時載入庫  201
12.4  從共享庫中載入函數(shù)  202
12.5  使用目標(biāo)文件和庫的工具程序  204
12.5.1  配置查找共享庫  204
12.5.2  列舉目標(biāo)文件中的符號名  205
12.5.3  去除目標(biāo)文件中的無用信息  207
12.5.4  列出共享庫的依賴關(guān)系  208
12.5.5  顯示目標(biāo)文件的內(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)試器附帶到運(yùn)行程序上  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的選項(xiàng)  229
14.2  Autoconf  232
第15章  GNU匯編器  237
15.1  用命令行進(jìn)行匯編  237
15.2  絕對、相對以及邊界  239
15.3  內(nèi)嵌匯編  240
15.4  匯編器指示字  243
第16章  交叉編譯及窗體端口  254
16.1  目標(biāo)機(jī)  254
16.2  創(chuàng)建交叉編譯程序  255
16.2.1  安裝本地編譯程序  255
16.2.2  為目標(biāo)機(jī)器建立binutils  256
16.2.3  安裝目標(biāo)機(jī)器的文件  257
16.2.4  可配置庫libgcc1.a  257
16.2.5  構(gòu)造交叉編譯程序  257
16.2.6  運(yùn)行交叉編譯程序  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  命令行選項(xiàng)  263
17.3.2  診斷  264
17.3.3  匯編器代碼  264
17.4  庫  264
17.4.1  整頓標(biāo)準(zhǔn)庫  265
17.4.2  為嵌入式系統(tǒng)設(shè)計(jì)的庫  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  子進(jìn)程開關(guān)  275
18.3.3  詳細(xì)的編譯程序調(diào)試信息  276
18.4  關(guān)于文件和目錄的信息  279
第19章  實(shí)現(xiàn)一種語言  280
19.1  從前到后  280
19.2  詞法掃視  281
19.2.1  簡單的詞法掃視程序  282
19.2.2  Lex的正則表達(dá)式  282
19.3  語法分析  283
19.4  創(chuàng)建解析樹  288
19.5  連接后端與前端  289
第20章  寄存器傳送語言  292
20.1  RTL insn  292
20.1.1  6種基本表達(dá)式代碼  292
20.1.2  insn的類型和內(nèi)容  294
20.2  模式和模式類  310
20.3  標(biāo)志  312
第21章  機(jī)器相關(guān)的編譯程序選項(xiàng)  314
21.1  機(jī)器列表  314
21.2  GCC命令行選項(xiàng)  315
21.2.1  Alpha選項(xiàng)  315
21.2.2  Alpha/VMS選項(xiàng)  320
21.2.3  ARC選項(xiàng)  320
21.2.4  ARM選項(xiàng)  320
21.2.5  AVR選項(xiàng)  325
21.2.6  CRIS選項(xiàng)  326
21.2.7  D30V選項(xiàng)  329
21.2.8  H8/300選項(xiàng)  330
21.2.9  HPPA選項(xiàng)  330
21.2.10  IA-64選項(xiàng)  332
21.2.11  Intel 386和AMD x86-64選項(xiàng)
  334
21.2.12  Intel 960選項(xiàng)  339
21.2.13  M32R/D選項(xiàng)  340
21.2.14  M680x0選項(xiàng)  341
21.2.15  M68HClx選項(xiàng)  344
21.2.16  M88K選項(xiàng)  344
21.2.17  MCore選項(xiàng)  347
21.2.18  MIPS選項(xiàng)  348
21.2.19  MMIX選項(xiàng)  354
21.2.20  MN10200選項(xiàng)  355
21.2.21  MN10300選項(xiàng)  355
21.2.22  NS32K選項(xiàng)  356
21.2.23  PDP-11選項(xiàng)  358
21.2.24  RS/6000和PowerPC選項(xiàng)  359
21.2.25  RT選項(xiàng)  368
21.2.26  S/390和zSeries選項(xiàng)  369
21.2.27  SH選項(xiàng)  370
21.2.28  SPARC選項(xiàng)  372
21.2.29  System V選項(xiàng)  376
21.2.30  TMS320C3x/C4x選項(xiàng)  376
21.2.31  V850選項(xiàng)  379
21.2.32  VAX選項(xiàng)  380
21.2.33  Xstormy16選項(xiàng)  380








 
第4部分  附錄
 
附錄A  GNU通用公共許可證  383
附錄B  環(huán)境變量  389
附錄C  命令行對照表  393
附錄D  命令行選項(xiàng)  400
D.1  選項(xiàng)前綴  400
D.1.1  命令行的順序  401
D.1.2  文件類型  401
D.2  選項(xiàng)字母順序列表  402
附錄E  術(shù)語表  480

本目錄推薦

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