linux編譯過程

2021-09-18 01:31:51 字數 824 閱讀 3529

預處理(preprocessing)

編譯(compilation)

彙編(assembly)

鏈結(linking)

二 過程詳述

預處理:首先對源**檔案test.c和相關標頭檔案,如stdio.h等被預編譯器編譯成乙個.i 檔案。

作用:預處理的作用主要是讀入源**,檢查包含預處理指令的語句和巨集定義,並對源**進行響應的轉換。預處理過程還會刪除程式中的注釋和多餘的空白字元。

命令:gcc -e test.c -o test.i

編譯:編譯成組合語言

作用:編譯過程是把預處理完的檔案進行一系列詞法分析、語法分析及優化後產生相應的彙編**檔案。

命令:gcc -s test.i -o test.s

彙編:將上面的彙編指令編譯生成目標檔案

作用:彙編器是將彙編**轉換成機器可以執行的指令,每乙個彙編語句幾乎都對應一條機器指令。所以彙編器的彙編過程相對於編譯器來說比較簡單,他沒有複雜的語法,也沒有語義、也不需要指令優化,只是根據彙編指令和機器指令對照表一一對應翻譯就可以了。

命令:gcc -c test.s -o test.o

鏈結:最終生成可執行檔案

作用:鏈結的主要目的是將程式的目標檔案與所需要附加的目標檔案鏈結起來,最終生成可執行檔案。附加的目標檔案也包括了所需要的庫檔案(靜態鏈結庫和動態鏈結庫)

命令:gcc test.o -o test

也可乙個命令完成上面的動作:gcc test.o -o test

linux核心編譯過程

檢視系統的版本 uname a linux u2 2.4.20 8 2 一 4月 8 20 04 05 cst 2006 i686 i686 i386 gnu linux 核心編譯 make dep 檢視關聯,確定依賴性 make clean 清除一些不必要的檔案 make bzimage 生成新核...

Linux核心編譯過程

一.核心源 準備 1.獲取核心源 a.可以找乙個移植好的核心源 2.拷貝核心源 包到宿主機 借助samba伺服器從windows複製核心原始碼包到linux宿主機共享目錄下。3.解壓核心源 包 tar xvzf linux x x.tgz 二.核心編譯步驟 1.切換為超級使用者 su 2.拷貝con...

Linux編譯軟體過程

一次性編譯 輸入的是c語言原始檔,通常為.c或者.c,它們一般帶有h之類的標頭檔案。這個階段主要處理原始檔中的 ifdef include和 define預處理命令。該階段會生成乙個中間檔案.i,此階段對於命令 gcc e hello.c o hello.i root localhost test ...