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

 

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