[精讚] [會員登入]
1147

【Raspberry Pi/樹梅派】(gcc 10) 如何安裝 gcc & g++

需要的時間非常久,不愧是gcc的編譯

分享此文連結 //n.sfs.tw/15694

分享連結 【Raspberry Pi/樹梅派】(gcc 10) 如何安裝 gcc & g++@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2022-03-19 02:12:52 最後編修
2022-03-18 09:52:54 By 過路君子
 

哈囉大家好,這裡是覺得更新gcc超麻煩的小編過路君子

開始編譯之後小編就去睡覺了,所以實際上花了多久,小編也不知道,忘了下 time 參數。

 

 

詳細的設定參數,小編參考了這篇:樹莓派 Raspberry Pi 自行編譯與安裝 GCC 6 編譯器教學 by G. T. Wang

好像每種系統所要使用的參數都不一樣,如果下錯或是沒下,就會在編譯的時候報錯,就算所有的安裝包都安裝了也是一樣。

 

首先,我們先隨便到一個鏡站把原始碼下載到我們的伺服器裡,鏡站的位置 gcc 官方網站都有,那小編本人是在 https://ftp.gnu.org/gnu/gcc/ 這個鏡站下載的。

截至小編撰文的當下,最新的 gcc 版本是 11.2,那小編在這裡以安裝 10.2 為例。

(所有圖片點擊都可以放大、變高清)

 

那當小編當初一拿到樹梅派時,順手就下了 apt update 和 apt upgrade,所以小編的樹梅派的 gcc 版本為 gcc 8.3.0。

g++ 的版本跟 gcc 一樣,這邊就不另外列出了。

 

然後下載 gcc 的原始碼並解壓縮。

wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.xz
tar Jxvf gcc-10.2.0.tar.xz

 

等待解壓縮完成之後切換至資料夾內。

cd gcc-10.2.0/

 

第一步就是先下載依賴檔。

./contrib/download_prerequisites

 

接下來就是最重要的一步了,因為小編平時在使用的 Linux 系統是 CentOS 8,所以在這邊踢到滿大的鐵板,直接拿 CentOS 的設定就死了。

那這邊是參考 G. T. Wang 在文章中所給出的設定,小編使用 raspberry pi 4 也能成功編譯。

編譯完成之後記得確認下圖是否出現了 Makefile 這個檔案,那小編看有些人會另外創建資料夾來放置 configure 的檔案,小編個人認為不需要,除非各位需要傳送此檔案到其他伺服器上編譯。

./configure -v \
  --enable-languages=c,c++ \
  --with-cpu=cortex-a53 \
  --with-fpu=neon-fp-armv8 \
  --with-float=hard \
  --build=arm-linux-gnueabihf \
  --host=arm-linux-gnueabihf \
  --target=arm-linux-gnueabihf \ 
  --prefix=/usr/local/gcc-10.2.0

既然小編的主力是 CentOS,那小編在這裡就順手附上 CentOS 的設定方式

./configure \
    --disable-multilib \
    --enable-languages=c,c++ \
    --prefix=/usr/local/gcc-10.2.0

差別挺大的,這就是為什麼小編會踢到鐵板。

 

然後接著連下兩條指令,這個過程大概要五個小時,建議是用 && 連接,然後就放著去睡覺,早上起床之後一定會好。

make -j 4
make install

 

當編譯並且安裝完成之後,相關的執行檔會放在 /usr/local/gcc-10.2.0/bin/ 下。

快速的連下五道指令快速設定全域 gcc,如果覺得沒必要下這麼多,也可以只下前兩條指令即可。

ln -fs /usr/local/gcc-10.2.0/bin/gcc /bin/gcc
ln -fs /usr/local/gcc-10.2.0/bin/g++ /bin/g++
ln -fs /usr/local/gcc-10.2.0/bin/gcc-ar /bin/gcc-ar
ln -fs /usr/local/gcc-10.2.0/bin/gcc-nm /bin/gcc-nm
ln -fs /usr/local/gcc-10.2.0/bin/gcc-ranlib /bin/gcc-ranlib

 

然後再確認一次目前的 gcc 版本。

成功!恭喜各位擁有了自己的高版本 gcc 編譯器囉~

其實樹梅派預設的 gcc 8.3.0 已經非常夠用了,要不要更新終究見仁見智,最新版本的軟體不一定最好

 

 

 

後記

為什麼小編會選擇 gcc 10.2.0 來安裝呢?因為......

END

你可能感興趣的文章

【JAVA】[java.lang.Class]如何不透過new來實體化class 在某些極端狀態下,我們沒有辦法直接將實體化後的 Object 傳入函數內,只能採用傳入 Class 在實體化成物件這種極端的方式來進行

【Wickct】(link) <a> 如何新增超連結 簡單來說有兩種方式,小編個人比較偏好 的方法

【PaperMC】從 Waterfall 切換至 Velocity waterfall 已經停止支援,最後停留在支援 Minecraft 1.21.6,之後的 Minecraft 版本便不再支援

【C++】一些好用的C++小功能 —— 壹 不太重要,但是可以增加程式質量以及可以讓程式看起來好像很厲害

【Maven】[Wicket](Java) 如何部署Wicket到Wildfly內 Wicket 是一個 Java 下的套件,換言之,我們的網頁伺服器後端是由 Java 來撰寫的

【Wicket】[CSP] Content-Security-Policy & Content-Security-Policy-Report-Only Wicket 預設開啟的,所以如果要加載外部資源甚至是同源資源都會被擋下。

隨機好文

高捷少女:布拉格體驗㊤ 「可……可以去歐洲玩?而且還有人出錢?太棒囉!」婕兒忍不住歡呼起來,把扳手拋呀拋的,旁邊的客人紛紛轉過來看。「好了啦!」耐耐忍不住害羞起來,輕輕敲了一下婕兒的頭

高捷少女:美麗島的守護者④ 光之穹頂的某處垃圾桶底,一個四方形的機器持續發出聲音,機器的儀表板上顯示著「1:25:10」的字樣,外表被一層鞭炮所掩蓋。儀表板的數字每秒不斷減少,細微的嗶嗶聲也隨著數字的改變發出,但在熙來攘往的美麗

艾米莉亞和高捷戀旅③ 「妳最好給我一個完整的理由,告訴我妳為什麼要這麼做。」艾米雙手叉腰,看著這位冒名參賽的後輩。「我會根據妳的說詞來判定妳違反規定的懲處。」

【數學】徐氏數學簡明講義(三) 第二章 直線與園 P2.1-17 Q28 28.若X、Y∈R,試求之最小值___ 解: 配方 畫圖 做對稱點 求其直線長度 解

【札記】在發文上遇到的問題 如果遇到問題,是選擇丟在一旁還是將其解決,又或者是看情況?