Mac升級gcc詳解

github 開源的許多項目在配置安裝過程中需要 進行“pip install .”,如果是在mac上進行配置,往往會遇到一下問題。

 從圖中 commad ‘gcc’failed with exit status 1 錯誤報告中可以得知問題應該是gcc版本過低導致的。Mac 默認的gcc版本爲4.2,通過命令gcc --version可以產看自己的gcc版本。目前github中新開源的代碼一般需要gcc4.9以上,所以這裏要做的就是對gcc進行升級。以下爲gcc升級的具體步驟:

1.安裝homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 2.打開終端,安裝gcc7

brew install gcc@7

輸入以下命令驗證gcc7是否安裝成功

gcc-7 -v

在下載的gcc@7的包裏查看有沒有c+±7,g+±7,gcc-7,我的在cd /usr/local/Cellar/gcc@7/7.4.0_2/bin目錄下可以找到,“7.4.0_2”可能跟我不一樣,可以自己查看一下自行調整。

3 打開mac的SIP防護(後續操作會在/usr/bin/文件中刪寫文件,如果不打開防護模式,即使開啓了root權限,刪寫操作的請求也會被拒絕。)

3.1 打開Mac終端輸入命令:

csrutil status

 它會顯示英文開啓還是關閉了,我這裏已經關閉了是disable,開啓的話是enabled。默認情況下是開啓的所以要關閉。

3.2 重啓Mac

點擊桌面的apple logo 選擇重新啓動,重啓過程中同時按住鍵盤上面的cmmand+r,進入修復模式。

3.3 修復者模式下關閉系統保護

在終端輸入命令:

csrutil disable

 

3.4 重啓Mac

正常啓動,登錄自己的用戶。打開終端輸入以下命令查看是否更改成功。

csrutil status

3.5 友情提示

gcc升級成功後不要忘記重新開啓系統保護,步驟同關閉一下,在修復模式下輸入以下命令即可。

csrutil enable

4 開啓mac的root權限

 

 

 

 

5 刪除 cc, gcc, c++, g++, cpp

shift +command +G 打開前往,輸入/usr/bin進入文件夾,刪除五個文件即cc, gcc, c++, g++, cpp 文件。(刪除前自己可以做好備份)

6 在/usr/bin下生成軟鏈接,既是製造替身確保正確

在終端命令行輸入以下命令,完成後在/usr/bin 中查找是否生成軟連接,並查看原身。

sudo ln -s  /usr/local/Cellar/gcc@7/7.4.0_2/bin/c++-7 /usr/bin/c++
sudo ln -s  /usr/local/Cellar/gcc@7/7.4.0_2/bin/g++-7 /usr/bin/g++
sudo ln -s  /usr/local/Cellar/gcc@7/7.4.0_2/bin/gcc-7 /usr/bin/gcc
sudo ln -s  /usr/local/Cellar/gcc@7/7.4.0_2/bin/gcc-7 /usr/bin/cc

7 添加路徑

在終端命令行輸入:

open ~/.bash_profile

在文本下面按照格式添加一個路徑:

PATH="/usr/local/Cellar/gcc@7/7.4.0/bin:/usr/local/Cellar/gcc@7/7.4.0/lib:${PATH}"
export PATH

8 檢查是否安裝成功:

終端輸入

gcc -v

9 關閉root權限和重新開啓SIP

關閉的步驟更開啓的步驟一致,相信你按照之前開啓的步驟再來一遍就明白了!

10 回顧與感謝

本人爲了升級gcc折騰了一下午,參考了多篇博客,多數博文在不開啓root權限和SIP防護下升級gcc,升級後通過命令 gcc -v雖然可以正常顯示升級後的gcc版本,但是在項目安裝的過程,gcc版本不適合的問題依然存在。本人通過以上方法升級後,項目pip install . 安裝成功。

本文摘抄自以下教程,並表示感謝:

https://blog.csdn.net/two_apples/article/details/88432196

https://www.jianshu.com/p/4ba0992db1c0?utm_campaign

https://jingyan.baidu.com/album/9c69d48ff88b3813c9024e9d.html?picindex=2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章