Gcc
gcc是GNU編譯器集合,包含C、C++、java、Ada、Forturn等編譯器,我們主要使用的是C和C++,它們對應(yīng)的程序是gcc和g++,為了兼容BSD等UNIX系統(tǒng),C編譯器的程序名還可以是cc或CC。
linux的一切都是由gcc編譯完成的,由于不同主版本的gcc的ABI并不完全相同,因此,如果Linux系統(tǒng)與應(yīng)用程序采用不同主版本號的gcc進(jìn)行編譯,很可能產(chǎn)生非常多的問題。
查看gcc版本的方法是gcc -v。注意,這里不但可以顯示出gcc的版本,還會顯示出gcc的編譯參數(shù),這也非常重要,即使是相同版本的gcc,在使用不同的編譯參數(shù)時也會產(chǎn)生兼容問題,比如線程模型。
Glibc
glibc是Linux的標(biāo)準(zhǔn)庫函數(shù),封裝了Linux的絕大多數(shù)的系統(tǒng)調(diào)用,相當(dāng)于Windows的API,所有應(yīng)用軟件都要依賴于它。
他的主版本發(fā)生改變時,它所提供的函數(shù)行為可能發(fā)生加大改變,基于不同glibc版本的程序在混合使用時,經(jīng)常會出現(xiàn)段錯誤。
查看glibc的版本的方法有兩種。一種是Linux系統(tǒng)的軟件包以RPM方式發(fā)布,可以利用rpm -q glibc命令查看所安裝的glibc是什么版本,文件名后面的數(shù)字就是版本數(shù)字。另外就是查看/lib目錄下下的libc-x.y.z.so文件,x、y、z就標(biāo)明了主版本、副版本和修正版本。
Kernel
內(nèi)核是Linux的核心,Linux的一切功能都有內(nèi)核提供,而不同的內(nèi)核版本會有很大的變化,比如2.4.x和2.6.x內(nèi)核區(qū)別非常大,可以說它們完全不兼容。另外,即便都是2.6.x的內(nèi)核,不同的修正版本也會存在較大差異,也很可能產(chǎn)生兼容問題。
產(chǎn)看內(nèi)核版本的方式是uname -r命令。
新聞熱點(diǎn)
疑難解答
圖片精選