壹般最簡化的編譯器工具鏈是Binutils+GCC+Glibc+kernel-header組合的環境。GCC是壹個編譯器,它的輸出壹次只能有壹個架構的指令輸出。如果您想要多個架構輸出,您必須安裝多個。
壹個工具鏈不可能只有GCC。它還需要壹個binutils的二進制連接器和壹個最基本的目標架構的C庫。C庫也需要壹個目標架構的內核源代碼才能完全工作(當然不是必須的,但是編譯有時候是必須的)。
因為GCC和binutils不能同時實現單個軟件和多個架構的輸出,所以需要分開安裝。另外,C庫和內核頭文件需要目標架構的東西,不能使用本地架構的數據。
源代碼主要有以下兩個功能:
1.生成目標代碼,也就是計算機能識別的代碼。
2.講解軟件,也就是講解軟件的編寫。很多初學者,甚至少數有經驗的程序員,都忽略了軟件指令的編譯,因為這部分不會直接顯示在生成的程序中,也不會參與編譯。然而,註釋代碼對軟件的學習、共享、維護和軟件重用大有裨益。
需要指出的是,修改源代碼並不能改變生成的目標代碼。如果目標代碼需要相應地修改,就必須重新編譯。