Linux下如何將原始檔逐步編譯成目標檔案的過程

2021-08-07 10:34:34 字數 521 閱讀 2448

請講一下linux如何原始檔逐步編譯成可執行檔案。

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

以hello.c 程式為例

乙個.c源程式需要經過預處理器生成.i檔案,再經過編譯器生成.s檔案,再經過彙編器生成可重定位目標檔案.o檔案,再與其他.o檔案經過鏈結器生成最終的可執行目標程式。

預處理階段。主要是處理原始檔中以「#」開頭的預編譯指令。

編譯階段。將預處理得到的預處理檔案進行語法分析,詞法分析,語義分析,優化後,生成彙編**檔案(組合語言源程式)。

彙編階段。利用匯程式設計序(彙編器)將組合語言源程式轉換成機器指令序列(機器語言程式)。

鏈結階段。將多個可重定位的目標檔案.o合併以生成可執行檔案,其可以被載入到記憶體中,由系統執行。

本文** 

linux下如何將大檔案分為多個小檔案

1 將檔案按照儲存大小拆分 如下命令,將954m大小的檔案httpd.log,按照500mb每個檔案大小進行拆分。拆分後,變為xaa和xab兩個檔案,每個檔案大小為477m。rw r r 1 root root 477m mar 25 12 38 xab 2 將拆分後的檔案按照某個tag命名 如下命...

在linux下如何將資料夾打包

linux zip壓縮。壓縮當前資料夾下所有檔案,壓縮為a.zip。命令列的方法是怎樣。zip r filename.zip 資料夾名 tartar命令可以用來壓縮打包單檔案 多個檔案 單個目錄 多個目錄。常用格式 單個檔案壓縮打包 tar czvf my.tar file1 多個檔案壓縮打包 ta...

在linux下如何將資料夾打包

linux zip壓縮。壓縮當前資料夾下所有檔案,壓縮為a.zip。命令列的方法是怎樣。zip r filename.zip 資料夾名 tartar命令可以用來壓縮打包單檔案 多個檔案 單個目錄 多個目錄。常用格式 單個檔案壓縮打包 tar czvf my.tar file1 多個檔案壓縮打包 ta...