The Linux GCC HOWTO中譯版V0.1
- 1. 生火上路(Preliminaries)!
- 1.1. ELF vs. a.out
- 1.2. 作者的私語(Administrata)
- 1.3. 印刷與排版(typography)
- 2. 上哪抓這些東東?
- 2.1. 這份文件座落之處
- 2.2. 其它相關的說明文件
- 2.3. GCC
- 2.4. C程式庫與標頭檔
- 2.5. 相關聯的工具 (as, ld, ar, strings etc)
- 3. GCC的安裝(installation)與啟用(setup)
- 3.1. GCC的版本
- 3.2. 東東裝好後都到哪兒去了?
- 3.3. 標頭檔ㄋㄟ?標頭檔ㄋㄟ?
- 3.4. 建立交叉編譯器(Building cross compilers)
- 3.4.1. 將Linux當作目標作業平台(target platform)
- 3.4.2. Linux當成來源作業平台(source platform),MSDOS作為目標作業平台
- 4. 移植(Porting)與編譯(Compiling)程式
- 4.1. gcc自行定義的符號
- 4.2. 線上求助說明(invocation)
- 4.2.1. 旗正飄飄~(flags)
- 4.2.1.1. 有個性的微處理器(Processor-specific)
- 4.2.2.
Internal compiler error: cc1 got fatal signal 11
- 4.3. 移植能力(Portability)
- 4.3.1. BSD教派(BSDisms) (有
bsd_ioctl
, daemon
與 <sgtty.h>
)
- 4.3.2. 失落的封印(`Missing' signals)
- 4.3.3. K & R
- 4.3.4. 前置處理器(Preprocessor)的符號卯上函數原型宣告(prototypes)
- 4.3.5.
sprintf()
- 4.3.6.
fcntl
與相關的函數; FD_*
家族的定義到底擺在哪裡?
- 4.3.7.
select()
的計時(time-out)---程式執行時會處於忙碌-等待的狀態(busy-waiting).
- 4.3.8. 產生中斷的系統呼叫(Interrupted system calls)
- 4.3.8.1. 徵兆(Symptom):
- 4.3.8.2. 問題點:
- 4.3.9. 可以寫入的字串(Writable strings)
- 4.3.10. 為什麼呼叫
execl()
會失敗?
- 5. Debugging and Profiling
- 5.1. Preventative maintenance (lint)
- 5.2. 除錯(Debugging)
- 5.2.1. 我要怎樣做才能將除錯資訊放到一支程式裡頭?
- 5.2.1.1. 那,能不能把除錯資訊給拿掉?
- 5.2.2. 實用的軟體(Available software)
- 5.2.3. 背景程式(Background (daemon) programs)
- 5.2.4. 核心檔案(Core files)
- 5.3. 旁敲側擊(Profiling)
- 6. 連結(Linking)
- 6.1. 共享程式庫 vs靜態程式庫
- 6.2. Interrogating libraries (`which library is
sin()
in?')
- 6.3. X檔案???
- 6.4. 建立你自己的程式庫(Building your own libraries)
- 6.4.1. 版本控制(Version control)
- 6.4.2. ELF? 它到底是什麼東東ㄋㄟ?
- 6.4.2.1. 怎麼又來了?
- 6.4.2.2. ELF共享程式庫
- 6.4.2.3. 版本編號, soname與符號連結
- 6.4.3. a.out---舊舊的格式~
- 6.4.3.1. ZMAGIC vs QMAGIC
- 6.4.3.2. 檔案配置(File Placement)
- 6.4.3.3. ``libc-lite''?
- 6.4.4. 連結:常見的問題
- 7. 動態載入(Dynamic Loading)
- 7.1. 基本概念
- 7.2. 錯誤訊息(Error messages)
- 7.3. 控制動態載入器的運作
- 7.4. 以動態載入撰寫程式
- 8. 與發展人士聯絡
- 8.1. Bug報表
- 8.2. 協助發展
- 9. 結語
- 9.1. 名人榜
- 9.2. 翻譯
- 9.3. 歡迎任何的回饋(Feedback)
- 9.4. 合法的行逕規定
- 10. 索引