国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

Linux下將源文件編譯成目標文件的過程解析

2024-09-05 23:04:36
字體:
來源:轉載
供稿:網友

簡介

請講一下linux如何源文件逐步編譯成可執行文件。

解答

首先先上圖對編譯的整個過程有個感性的認識,然后再逐步分析各個過程。

以hello.c 程序為例

# include <stdio.h>main{  printf("hello/n");}

一個.c源程序需要經過預處理器生成.i文件,再經過編譯器生成.s文件,再經過匯編器生成可重定位目標文件.o文件,再與其他.o文件經過鏈接器生成最終的可執行目標程序。

預處理階段。主要是處理源文件中以“#”開頭的預編譯指令。

刪除#define并展開宏

處理所有條件預編譯指令,如#if, #ifdef, #endif

插入頭文件到“#include”處

刪除所有注釋

添加行號和文件名標識,以便編譯時編譯器產生調試用的行號信息

保留所有#pragma編譯指令。

編譯階段。將預處理得到的預處理文件進行語法分析,詞法分析,語義分析,優化后,生成匯編代碼文件(匯編語言源程序)。

匯編階段。利用匯編程序(匯編器)將匯編語言源程序轉換成機器指令序列(機器語言程序)。

鏈接階段。將多個可重定位的目標文件.o合并以生成可執行文件,其可以被加載到內存中,由系統執行。

總結

以上就是本文關于Linux下將源文件編譯成目標文件的過程解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰台区| 章丘市| 建宁县| 夹江县| 尉氏县| 建始县| 五大连池市| 沐川县| 九江市| 安庆市| 大冶市| 鲁山县| 根河市| 长岛县| 阜康市| 甘孜县| 富宁县| 肥乡县| 三明市| 汉寿县| 韶关市| 莱州市| 博罗县| 将乐县| 文化| 徐汇区| 保德县| 佳木斯市| 卢氏县| 青河县| 红原县| 石楼县| 阿克陶县| 凤城市| 彭阳县| 循化| 隆化县| 珲春市| 土默特右旗| 耒阳市| 临泉县|