編譯系統概要

zyhmz發表於2018-07-23

我們首先看一看一個最簡單的helloworl程式:

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

hello程式的生命週期是從一個高階c語言程式開始的,是一種高階語言程式,這種形式可以比較容易被人讀懂。然而,為了在系統上執行hello.c程式,每條c語言必須可以被其他程式轉化為一系列的低階機器語言指令,然後這些指令按照一種稱為可執行目標程式的格式打好包,並以二進位制磁碟檔案的形式存放起來。目標程式也稱為可執行目標檔案。

在我們一般的linux系統上,從原始檔到目標檔案的轉化是由編譯器驅動程式完成的,也就是我們常用的gcc指令。

gcc -o hello hello.c

在這裡,gcc編譯器驅動程式讀取源程式檔案hello.c,並把它翻譯成一個可執行的目標檔案hello。這個翻譯過程可以分為四個階段,執行這四個階段的程式分別為:前處理器,編譯器,彙編器,和連結器,它們一起構成了編譯系統。

相關文章