[精讚] [會員登入]
1294

【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

你可能感興趣的文章

【Firefox \ Maven】[Headless](Linux) 如何使用Maven打包並驅動Firefox 有時候我們需要取得渲染後的網頁,當然是直接呼叫瀏覽器出來用啦

【C++】SFML安裝於Microsoft Visual Studio 2019 此方法僅適用單個C++專案,因為一次就適用整台電腦的方式有人寫了,而且寫得非常不錯。

【Linux】[CentOS 8] How to update sudo instruction The last time I wanted to update the sudo command should be 2017, right? It's 2021 in a blink of an

【Discord bot】[botton]按鈕的使用、響應和關閉 Discord的botton通常都要和View配合使用。

【Maven】如何創建一個簡單可執行的JAR檔 滿重要的一個小功能,畢竟有時候是要傳遞的是JAR檔,而不是直接透過Maven直接部屬之類的

【JSON In Java】如何快速產生JSON 身為三十年老程式語言,當然對Json有不錯的支援,那究竟該如何使用呢

隨機好文

【手遊介紹】小品手遊─寶箱是我的!(SUMMONER'S GREED) 輕鬆無腦的塔防遊戲,殺時間本小編推薦的遊戲之一

高捷少女:小穹與果仁巧克力㊤ 阿敏突然輕笑一聲,從櫃臺拿來一個塑膠餐盒,打開給大家看。「這是小穹烤的餅乾,妳們吃吃看就知道她為什麼不想講了。」小穹變得緊張起來。「阿敏,妳怎麼還留著呀?」艾米莉亞、婕兒與耐耐各自拿了一塊,把夾著奶油

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

婕兒──她的青春① 「各位乘客,本列車即將抵達拉里奧哈自治區,並在此地停留三天兩夜,後天的中午十二點將搭乘班機返回臺灣,感謝各位乘客對本次旅程的配合。」火車上的廣播器朗誦道。「時間過得真快呢,這次的歐洲之旅就這樣結束了,

【英翻中歌詞】(二創歌)Reincarnation “Well, hello there. It’s been a while…” 「喔,你好啊!好久不見了...」 Sealed in a sacred shrine… 被封印在神社之中... Ba