無論是進階程式設計語言還是專用程式設計語言,都不能被計算機系統直接識别,用這些語言所編寫的程式代碼稱為源程式,源程式需要通過預先設計好的專用程式進行轉換,轉換為計算機系統可以識别的機器指令,然後才能交由計算機系統執行。
編輯是程式員通過編輯軟體錄入源代碼的過程。
編譯是檔案錄入後,使用編譯程式對源檔案進行編譯,目标檔案已經是二進制的機器代碼了。
一方面有些程式使用頻率高,一般程式員難以自行開發,是以編譯系統通常将這些功能預先編譯好,以程式庫的形式提供給程式員使用。
另一方面,待開發的程式可能不隻一個源檔案組成,而是由多個源檔案構成的,經過編譯後,每個源檔案生成一個不完整的目标檔案,将這些目标檔案拼在一起,才能構成整個目标檔案。
連結過程就是對組成整個程式的各個目标檔案,程式庫進行封裝,生成最終的目标程式的過程。
c語言編譯流程:
預處理-->編譯-->彙編-->連結 -->a.out
預處理是把宏定義的指令資訊拷貝到源程式中,進行頭檔案替換,不檢查文法錯誤。
可以通過gcc編譯指令【gcc -e 源檔案(.c) -o 生成檔案(.i)】 生成.i檔案檢視。
編譯通過gcc編譯指令[gcc -s 預處理檔案(.i檔案)]指令編譯,這時會檢查文法錯誤。生成.s檔案。
彙編把文本檔案編譯成機器的二進制檔案。通過gcc指令【gcc -c .s檔案】,生成.o的檔案。
連結是把多個.o的檔案,連結成一個可執行的動态檔案。輸出.out檔案。