Gcc
gcc是GNU編譯器集合,包含C、C++、Java、Ada、Forturn等編譯器,我們主要使用的是C和C++,它們對應的程式是gcc和g++,為了相容BSD等UNIX系統,C編譯器的程式名還可以是cc或CC。
Linux的一切都是由gcc編譯完成的,由於不同主版本的gcc的ABI並不完全相同,因此,如果Linux系統與應用程式採用不同主版本號的gcc進行編譯,很可能產生非常多的問題。
查看gcc版本的方法是gcc -v。注意,這裡不但可以顯示出gcc的版本,還會顯示出gcc的編譯參數,這也非常重要,即使是相同版本的gcc,在使用不同的編譯參數時也會產生相容問題,比如線程模型。
Glibc
glibc是Linux的標準庫函數,封裝了Linux的絕大多數的系統調用,相當於Windows的API,所有應用軟體都要依賴於它。
他的主版本發生改變時,它所提供的函數行為可能發生加大改變,基於不同glibc版本的程式在混合使用時,經常會出現段錯誤。
查看glibc的版本的方法有兩種。一種是Linux系統的套裝軟體以RPM方式發佈,可以利用rpm -q glibc命令查看所安裝的glibc是什麼版本,文件名後面的數字就是版本數字。另外就是查看/lib目錄下下的libc-x.y.z.so文件,x、y、z就標明瞭主版本、副版本和修正版本。
Kernel
內核是Linux的核心,Linux的一切功能都有內核提供,而不同的內核版本會有很大的變化,比如2.4.x和2.6.x內核區別非常大,可以說它們完全不相容。另外,即便都是2.6.x的內核,不同的修正版本也會存在較大差異,也很可能產生相容問題。
產看內核版本的方式是uname -r命令。
(責任編輯:雲子)