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