GCC Gnu Compiler Collection(GCC),應該是GNU最有名的傑作了。很多研 究單位不想多花錢買商用的compiler就用gcc來compile。本來gcc的意思是 專指gnu c compiler,不過後來延伸出pascal,fortran等等只要是GNU負責的 都是,不過我們還是指有c/c++/object c 的gnu compiler package 。他的功能跟強大不是一般compiler比得上的。
它可以是個cross-compiler,也就是它可以在Intel的機器上編譯程式,但是這 個程式是Sun Sparc Solaris的執行檔,反之也可以,只要他有支援的機器,作 業系統,就可這樣亂七八糟的愛怎麼編就怎麼編。現在最流行的就是arm這顆 CPU,或者palm的程式寫作,用gcc實在是太好用了。
而且這個編譯器是免費的,不要說怎麼這麼陽春,沒有IDE,基本上寫作大程式, 是沒有這些東西的,寫程式寫到好幾萬行時,那些已經沒有一個清醒的頭 腦重要了。因此要會真正的C功力,要寫真正有用的程式,非gcc莫屬了。 這是一個免費的練習的好軟體。
一個編譯過程通常需要4道程序
preprocess 先處理那些#ifdef #define這些東西並做一些巨集代換
compile 做語意分析,翻譯成組合語言
assemble 翻成機器碼與OS有關的格式,做成relocatable obj檔。
link 找到symbol(函式,變數名)與程式庫(shared obj)中的副程式 ,做成可執行obj檔(executable obj)。
$ gcc xxx.c |