- Linux系統安全基礎:二進制代碼安全性分析基礎與實踐
- 彭雙和編著
- 295字
- 2023-09-07 18:30:36
2.1 二進制代碼的生成過程
從源代碼(如C或C++語言程序)生成二進制可執行文件的過程叫做編譯過程。編譯過程由編譯器完成,這里以gcc(The GNU Compiler Collection, GNU編譯器套裝)為例進行說明。整個編譯過程分為四個階段:預編譯階段(也叫做編譯預處理階段)、編譯階段、匯編階段以及鏈接階段,如圖2.1所示。

圖2.1 從源代碼到可執行文件的編譯過程
注意,這里的編譯過程和編譯階段是兩個不同的事情。實際上,現代編譯器通常會合并其中的一些或全部階段。
下面以圖2.1中的程序Prog.c生成可執行文件Prog的過程為例進行說明。在默認情況下,執行命令“gcc Prog.c-o Prog”后,gcc可自動執行編譯過程的所有階段,生成可執行文件Prog。如果要單獨執行某個階段,必須顯式地為gcc指定相關選項。
推薦閱讀
- Linux系統架構與運維實戰
- Instant Handlebars.js
- Linux網絡內核分析與開發
- Docker+Kubernetes應用開發與快速上云
- Dreamweaver CS5.5 Mobile and Web Development with HTML5,CSS3,and jQuery
- Social Data Visualization with HTML5 and JavaScript
- Red Hat Enterprise Linux 6.4網絡操作系統詳解
- Cassandra 3.x High Availability(Second Edition)
- Troubleshooting Docker
- Kali Linux高級滲透測試(原書第3版)
- Windows 7實戰從入門到精通(超值版)
- Java EE 7 Developer Handbook
- Mastering Azure Serverless Computing
- 每天5分鐘玩轉Docker容器技術
- 基于Arduino的嵌入式系統入門與實踐