2015-03-19 156 views
-1

我有gcc-4.6 & gcc-4.7都安裝在我的機器上,我將gcc作爲默認編譯器。但是我仍然可以在「cat/proc/version」下看到4.6,但是我想要4.7來代替4.6。如何更改gcc版本linux

cat /proc/version 
Linux version 3.2.0-4-rt-686-pae ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14)) #1 SMP PREEMPT RT Debian 3.2.65-1+deb7u2 

如何將gcc版本從4.6更改爲4.7?

任何幫助對我來說都會很有幫助。

非常感謝。

+0

'/ proc/version'顯示用於編譯內核的編譯器。是什麼讓你覺得它與你安裝的編譯器有什麼關係? – Biffen 2015-03-19 12:15:27

+0

實際上我有一個模塊,它是用gcc 4.7加載到內核中的,但是我希望在加載不同的內核時使用gcc 4.6編譯相同的模塊,默認使用gcc 4.6。所以我的想法是,如果我將gcc 4.6更改爲gcc 4.7,那麼相同的模塊也可以在其他內核中編譯。 – linuxman 2015-03-19 12:22:47

+0

要更改*'/ proc/version',您必須獲取或編譯新的內核。 – Biffen 2015-03-19 12:25:42

回答

0

這是因爲您安裝了兩個版本,而4.6被視爲默認值。 最簡單的方法讓GCC-4.7默認的gcc是將在/ usr/bin中/海灣合作委員會的符號鏈接:

sudo rm /usr/bin/gcc 

sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc 

參考鏈接here

+0

我已經嘗試了你提供的命令,但仍然沒有改變,cat/proc/version顯示gcc 4.6.3。但還有一點是,當我給gcc - 版本只顯示4.7。我不明白我如何改變/ proc/version – linuxman 2015-03-19 12:19:08

+0

@linuxman是什麼讓你覺得你想改變'/ proc/version'? (請參閱我對該問題的評論。) – Biffen 2015-03-19 12:21:26

+0

基本上我的機器中有兩個內核,即3.2和3.10。由於一些問題,我想爲我的工作使用3.2內核,但是當我使用3.2內核時,我的一個庫沒有加載,在啓動過程中,我收到此錯誤「不符合符號版本的module_layout」。 – linuxman 2015-03-19 12:29:42

0

有沒有什麼辦法可以在3.2中使用一個模塊,這個模塊是用內核 3.10編譯的?

您可以嘗試modprobe的選項-f