詳解編譯過程(編譯+鏈接)

翻譯環境:

編譯(編譯器):

1.預編譯(預處理):

最終生成test.i文件

【命令】:gcc test.c -E -O test.i

【包含過程】:

1.頭文件的包含

2.注釋的刪除

3.#define定義的符號的替換

2.編譯:

最終生成test.s文件

【命令】:gcc test.i -s

【包含過程】:

把c語言翻譯成匯編語言(指令級代碼)

1.語法分析

2.詞法分析

3.語義定析

4.符號匯總(各種函數名+全局變量名)

3.匯編

最終生成test.o文件(vs中是.obj文件)

【命令】:gcc test.s -c

【包含過程】:

把匯編代碼轉換成二進制指令

生成符號表(函數名+函數地址)

鏈接(鏈接器):

最終生成.exe文件(可執行文件)并執行

【命令】:

gcc test.o (如果想指定文件名為test.exe,則輸入命令:gcc test.o -o test.exe)

【包含過程】:

1.合并段表

2.符號表的合并和重定表

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35554.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35554.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35554.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小程序具體開發

window 導航欄 屬性名類型默認值作用navigationBarTitleText string字字符串導航欄標題內容navigationBarBackgroundColorHexcolor#000000設置導航欄背景顏色(比如熒黃色 #ffa)navigationBarTextStylestringwhite設置導航欄標題的顏色(僅含有…

通過將信號頻譜與噪聲頻譜進行比較,自動檢測適當的帶通濾波器轉折頻率研究(Matlab代碼實現)

💥💥💞💞歡迎來到本博客????💥💥 🏆博主優勢:🌞🌞🌞博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ??座右銘&a…

【數據結構與算法】十大經典排序算法-堆排序

🌟個人博客:www.hellocode.top 🏰Java知識導航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ?如有問題,歡迎指正&#…

用庫造一個list的輪子 【C++】

文章目錄 list的模擬實現默認成員函數構造函數拷貝構造函數賦值運算符重載析構函數 迭代器迭代器為什么要存在?const_iteratorbegin和end inserterasepush_back && pop_backpush_front &&pop_frontswap 完整代碼 list的模擬實現 默認成員函數 構造…

HCIP BGP小綜合

BGP小綜合 AS配置AS1AS2 中的小自治系統64512AS2 中的小自治系統64513AS3 測試 首先該實驗分成三個AS,AS2里面有聯邦,所以配置順序 要先將IBGP通,然后配置AS1,AS3和聯邦 AS配置 AS1 R1 # bgp 1router-id 1.1.1.1peer 12.1.1.2 as-number …

二十二、責任鏈模式

目錄 1、使用demo演示責任鏈模式2、傳統方案解決oa系統審批3、傳統方案解決oa系統審批存在的問題4、職責鏈模式基本介紹5、職責鏈模式原理類圖6、職責鏈模式解決oa系統采購審批7、職責鏈模式的注意事項和細節8、職責鏈模式的實際使用場景舉例 1、使用demo演示責任鏈模式 學校o…

數據庫相關面試題

鞏固基礎,砥礪前行 。 只有不斷重復,才能做到超越自己。 能堅持把簡單的事情做到極致,也是不容易的。 mysql怎么優化 : MySQL的優化可以從以下幾個方面入手: 數據庫設計優化:合理設計表結構,選擇合適的數…

GitHub 如何部署寫好的H5靜態頁面

感謝粉皮zu的私信,又有素材寫筆記了。(●’?’●) 剛好記錄一下我示例代碼的GitHub部署配置,以便于后期追加倉庫。 效果 環境 gitwin 步驟 第一步 新建倉庫 第二步 拉取代碼 將倉庫clone到本地 git clone 地址第三步 部署文件 新建.github\workflo…

vue-pc端elementui-統一修改問題-Dialog 對話框點擊空白關閉問題-element-所有組件層級問題

前言 實際開發我們經常發現dialog彈出框默認點擊遮罩層空白地方就會關閉-有屬性可以關閉 但是經常會圖方便-或者已經寫完了,不想一個個寫,可以在main.js進行統一關閉 當我們在頁面進行復雜設計和層級關閉改變,會發現右上角的退出登錄彈出款…

現代無人機技術

目錄 1.發展 2.應用領域 3.對戰爭的影響 4.給人類帶來的福利 5.給人類帶來的壞處 1.發展 無人機的發展可以分為以下幾個關鍵步驟: 1. 早期試驗和研究:20世紀初,飛行器的概念開始出現,并進行了一些早期的試飛和實驗。這些嘗試包…

LeetCode150道面試經典題-- 有效的字母異位詞(簡單)

1.題目 給定兩個字符串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的字母異位詞。 注意:若 s 和 t 中每個字符出現的次數都相同,則稱 s 和 t 互為字母異位詞。 2.示例 s"adasd" t"daads" 返回true s"addad" t &q…

常見設計模式

概念 設計模式是怎么解決問題的一種方案 常見的設計模式 單例模式 概念:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。 應用:項目封裝個websocket用于大屏,redux,vuex都應用了單例模式的思想&#xff1b…

文獻閱讀:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators

文獻閱讀:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators 1. 文章簡介2. 方法介紹3. 實驗考察 1. 實驗結果2. 消解實驗3. Consistency & Stability 4. 結論 & 思考 文獻鏈接:https://arxiv.org/abs/2303.16854 …

Golang設計模式

Golang設計模式 Golang設計模式簡介Golang工廠設計模式Golang單例設計模式Golang抽象工廠設計模式Golang建造者模式 (Builder Pattern)Golang 原型模式(Prototype Pattern)Golang適配器模式Golang 橋接模式(Bridge Pattern)Golang裝飾器模式(Decorator …

j東h5st參數多局部ob加密(js_security_v3_0.1.4.js)加密分析

j東h5st參數多局部多次ob加密(js_security_v3_0.1.4.js) 大家好呀,我是你們的好兄弟,【星云horseAK】,今天的主題真的是千呼萬喚始出來,某東東的h5st參數,這個加密的js文件使用了obfuscator進行…

《Java-SE-第三十六章》之枚舉

前言 在你立足處深挖下去,就會有泉水涌出!別管蒙昧者們叫嚷:“下邊永遠是地獄!” 博客主頁:KC老衲愛尼姑的博客主頁 博主的github,平常所寫代碼皆在于此 共勉:talk is cheap, show me the code 作者是爪哇島的新手,水平很有限&…

Linux 日志管理

Linux 日志管理 一.Linux 下的日志服務簡介 1.1 CentOS5 之前的版本 centos5 之前的版本使用系統和內核日志分離的格式記錄日志 syslogd:該服務專門用于記錄系統日志(system application logs) klogd: 該服務專門用于記錄內核日志(linux kernel logs) centos5 之前事件的記錄格…

Redis_Geospatial(基于位置信息的應用)

12.Geospatial 12.1 簡介 基于位置信息服務(Location-Based Service,LBS)的應用。Redis3.2版本后增加了對GEO類型的支持。主要來維護元素的經緯度。redis基于這種類型,提供了經緯度設置、查詢、范圍查詢、距離查詢、經緯度hash等一些相關操作 12.2 GEO底層結構 …

war和war exploded

war和war exploded的區別 war模式&#xff1a;將WEB工程以包的形式上傳到服務器 &#xff1b; war exploded模式&#xff1a;將WEB工程以當前文件夾的位置關系上傳到服務器&#xff1b;>> war包是自己打包生成的&#xff0c;如pom文件中<packaging>war</packag…