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