購物比價找書網找車網
FindBook  
 有 1 項符合

高級C/C++編譯技術(典藏版)

的圖書
高級C/C++編譯技術(典藏版) 高級C/C++編譯技術(典藏版)

作者:(米蘭·斯特瓦諾維奇 / 譯者:盧譽聲 
出版社:機械工業出版社
出版日期:2023-01-01
語言:簡體中文   規格:平裝 / 266頁 / 16k/ 19 x 26 x 1.33 cm / 普通級/ 單色印刷 / 1-1
圖書選購
型式價格供應商所屬目錄
 
$ 465
博客來 博客來
C/C++
圖書介紹 - 資料來源:博客來   評分:
圖書名稱:高級C/C++編譯技術(典藏版)

內容簡介

學習如何編寫C和C++代碼僅僅是個開始。如果你希望從事系統底層開發工作,或想深入理解作業系統、編譯器及它們之間內在的關聯,成為程式設計專家,那麼就必須充分瞭解編譯器生成的二進位檔案(目的檔案、靜態程式庫、動態庫和可執行檔)的作用和結構。開源已經在許多方面從根本上改變了軟體的原有面貌,越來越多的系統開始採用或集成開原始程式碼,因此對每位開發人員來說,學習和理解這些底層技術也變得十分重要。

本書深入淺出地講解了構建過程(編譯、連結)中的細節,從多個角度展示了程式與庫檔或代碼的集成方法,提出了面向代碼重用和系統集成的軟體架構設計方法,同時展示了系統開發過程中疑難問題的解決方案。另外,本書也是一本C和C++二進位檔案方面的軟體工程指南,涵蓋中級和專家級程式師所需的各方面內容和資訊。

通過閱讀本書,你將學到:

*構建過程(編譯和連結)與裝載過程的內部原理。
*靜態程式庫、動態庫和可執行檔的內部工作機制。
*面向代碼重用和系統集成的軟體架構設計方法。
*編譯、連結與運行時問題的排查技巧。
*在Linux和Windows平臺下利用二進位檔案分析工具進行分析的方法。

 

作者介紹

米蘭·斯特瓦諾維奇( Milan Stevanovic ) 
資深軟體顧問,在多個學科的工程領域有著豐富的經驗。他主要從事Linux和Windows平臺下的多媒體壓縮格式及多媒體框架設計工作。他熱衷於開源,是avxsynth開源專案的主要貢獻者,對C和C++底層技術有著深入的研究。

 

目錄

譯者序
前言
第1章 多工作業系統基礎 1
1.1 一些有用的抽象概念 1
1.2 記憶體層次結構與緩存策略 2
1.3 虛擬記憶體 3
1.4 虛擬位址 5
1.5 進程的記憶體劃分方案 5
1.6 二進位檔案、編譯器、連結器與裝載器的作用 6
1.7 小結 7

第2章 程式生命週期階段基礎 8
2.1 基本假設 8
2.2 編寫代碼 9
2.3 編譯階段 11
2.3.1 基本概念 11
2.3.2 相關概念 11
2.3.3 編譯的各個階段 12
2.3.4 目的檔案屬性 23
2.3.5 編譯過程的局限性 24
2.4 連結 26
2.4.1 連結階段 26
2.4.2 連結器視角 31
2.5 可執行檔屬性 33
2.5.1 各種節的類型 34
2.5.2 各種符號類型 36

第3章 載入程式執行階段 37
3.1 shell的重要性 37
3.2 內核的作用 39
3.3 裝載器的作用 39
3.3.1 裝載器視角下的二進位檔案(節與段) 39
3.3.2 程式載入階段 40
3.4 程式執行入口點 43
3.4.1 裝載器查找入口點 43
3.4.2 _start()函數的作用 43
3.4.3 __libc_start_main()函數的作用 44
3.4.4 棧和調用慣例 44

第4章 重用概念的作用 46
4.1 靜態程式庫 46
4.2 動態庫 48
4.2.1 動態庫和共用庫 49
4.2.2 動態連結詳解 51
4.2.3 Windows平臺中動態連結的特點 54
4.2.4 動態庫的特點 56
4.2.5 應用程式二進位介面 56
4.3 靜態程式庫和動態庫對比 57
4.3.1 導入選擇條件的差異 57
4.3.2 部署難題 59
4.4 一些有用的類比 61
4.5 結論:二進位重用概念所產生的影響 63

第5章 使用靜態程式庫 64
5.1 創建靜態程式庫 64
5.1.1 創建Linux靜態程式庫 64
5.1.2 創建Windows靜態程式庫 65
5.2 靜態程式庫的使用場合 65
5.3 靜態程式庫設計技巧 66
5.3.1 丟失符號可見性和唯一性的可能性 66
5.3.2 靜態程式庫使用禁忌 67
5.3.3 靜態程式庫連結的具體規則 68
5.3.4 將靜態程式庫轉換成動態庫 68
5.3.5 靜態程式庫在64位Linux平臺上的問題 68

第6章 動態庫的設計:基礎篇 70
6.1 創建動態庫 70
6.1.1 在Linux中創建動態庫 70
6.1.2 在Windows中創建動態庫 72
6.2 設計動態庫 75
6.2.1 設計二進位介面 75
6.2.2 設計應用程式的二進位介面 79
6.2.3 控制動態庫符號的可見性 82
6.2.4 完成連結需要滿足的條件 94
6.3 動態連結模式 94
6.3.1 載入時動態連結 95
6.3.2 運行時動態連結 95
6.3.3 比較兩種動態連結模式 98

第7章 定位庫文件 99
7.1 典型用例場景 99
7.1.1 開發用例場景 99
7.1.2 用戶運行時用例場景 100
7.2 構建過程中庫檔的定位規則 101
7.2.1 Linux構建過程中的庫檔定位規則 101
7.2.2 Windows構建過程中的庫檔定位規則 105
7.3 運行時動態庫檔的定位規則 109
7.3.1 Linux運行時動態庫檔的定位規則 110
7.3.2 Windows運行時動態庫檔的定位規則 114
7.4 示例:Linux構建時與運行時的庫檔定位 115

第8章 動態庫的設計:進階篇 119
8.1 解析記憶體位址的必要性 119
8.2 引用解析中的常見問題 120
8.3 位址轉換引發的問題 122
8.3.1 情景1:客戶二進位檔案需要知道動態庫符號位址 122
8.3.2 情景2:被裝載的庫不需要知道其自身符號位址 123
8.4 連結器-裝載器協作 124
8.4.1 總體策略 125
8.4.2 具體技術 126
8.4.3 連結器重定位提示概述 127
8.5 連結器-裝載器協作實現技術 128
8.5.1 裝載時重定位 129
8.5.2 位置無關代碼 129

第9章 動態連結時的重複符號處理 134
9.1 重複符號的定義 134
9.2 重複符號的預設處理 137
9.3 在動態庫連結過程中處理重複符號 140
9.3.1 處理重複符號問題的一般策略 142
9.3.2 連結器解析動態庫重複符號的模糊演算法準則 143
9.4 特定重複名稱案例分析 144
9.4.1 案例1:客戶二進位檔案符號與動態庫ABI函數衝突 144
9.4.2 案例2:不同動態庫的ABI符號衝突 147
9.4.3 案例3:動態庫ABI符號和另一個動態庫局部符號衝突 151
9.4.4 案例4:兩個未匯出的動態庫符號衝突 153
9.5 小提示:連結並不提供任何類型的命名空間繼承 161

第10章 動態庫的版本控制 162
10.1 主次版本號與向後相容性 162
10.1.1 主版本號變更 162
10.1.2 次版本號變更 163
10.1.3 修訂版本號 163
10.2 Linux動態庫版本控制方案 163
10.2.1 基於soname的版本控制方案 163
10.2.2 ………..
 

詳細資料

  • ISBN:9787111717300
  • 規格:平裝 / 266頁 / 16k / 19 x 26 x 1.33 cm / 普通級 / 單色印刷 / 1-1
  • 出版地:中國
贊助商廣告
 
金石堂 - 今日66折
岩合光昭 與貓散步
66折: $ 231 
金石堂 - 今日66折
任何人都適用的完美學習法
作者:高榮成、申榮俊
出版社:究竟出版社股份有限公司
出版日期:2021-01-01
66折: $ 264 
金石堂 - 今日66折
詞在有意思1:露馬腳,皇后不能說的祕密!
66折: $ 165 
 
博客來 - 暢銷排行榜
灶形記:台灣經典廚具指南【博客來獨家】
作者:中華民國廚具櫥櫃商業同業公會全國聯合會
出版社:墨刻
出版日期:2024-11-28
$ 355 
博客來 - 暢銷排行榜
我可能錯了:森林智者的最後一堂人生課
作者:比約恩.納提科.林德布勞 (Björn Natthiko Lindeblad, Caroline Bankler, Navid Modiri)
出版社:先覺
出版日期:2023-02-01
$ 355 
博客來 - 暢銷排行榜
在紙船中入眠(下)
作者:八田てき
出版社:尖端
出版日期:2024-12-10
$ 204 
金石堂 - 暢銷排行榜
PUNKS△TRIANGLE(全)
作者:沖田有帆
出版社:東立出版社
出版日期:2024-12-11
$ 145 
 
Taaze 讀冊生活 - 新書排行榜
剛剛好的自由:自律才能享受自由,讓孩子成為負責任的大人
作者:尚瑞君
出版社:時報文化出版企業股份有限公司
出版日期:2024-12-03
$ 266 
博客來 - 新書排行榜
達克比辦案15:孤島時光機:島嶼生態學與臺灣島的形成
出版日期:2024-11-28
$ 300 
Taaze 讀冊生活 - 新書排行榜
寫作的靈現:AI時代寫手的修煉與想像力
作者:楊憲宏
出版社:時報文化出版企業股份有限公司
出版日期:2024-12-17
$ 252 
 

©2024 FindBook.com.tw -  購物比價  找書網  找車網  服務條款  隱私權政策