[精讚] [會員登入]
1102

【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

你可能感興趣的文章

【Discord bot】(ERROR)await self.bot.wait_for() 大坑 今天真的是採到大坑,只找到解決方法,具體原因不明

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

【C++】使用SFML製作讓方塊落下的畫面 從開啟新視窗延伸過來的應用(?),配合上一篇所使用到開啟一個可渲染視窗的那堆程式碼的延伸。

【!@#$%^&*()_+ language】!@#$%^&*()_+ 程式語言介紹 一款看起來像是在鬧的程式語言

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

【C++】使用SFML創建新視窗和新增圖標(ICON)並隱藏DOS 筆記,怕自己以後忘記怎麼創建並開啓一個新視窗

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

高捷少女:購票大作戰(終) 完了。 這下真的完了! 艾米腦內所有的思考中樞,同時發出了淒厲的吶喊。完蛋啦!這下真的被揭穿了啦!! 「那……那是因為……」艾米結結巴巴的說:「因為……

高捷少女:美麗島的守護者③ 小雅閉上眼睛,思索在高捷發生的點點滴滴。她心意已決,在高捷的日子的確也有快樂的部分,不過她相信換個方向是更好的決定。有關高捷的所有美好回憶,小雅決定保留在心裡就好,繼續在高捷工作只會讓自己更痛苦而已,

高捷少女:美麗島的守護者⑥ 一陣貓叫傳到小雅耳中,原本要朝小雅撲過去的北風轉了個圈,從半空中落地,牠的表情宛如五雷轟頂。這聲音……難道是……

【歌評】蓮台野夜行 - 幻視之夜 ~ Ghostly Eyes 若有什麼是在聽到boss曲前的鋪襯,那一定就是每個系列的道中曲

【數學】徐氏數學簡明講義(三) 第二章 直線與園 P2.1-15 Q12 12.已知聯立方程式恰有一解(x,y) = (1,2),   則的解為(x,y) = ? 解: