macOS默认C++编译工具为clang,下文将具体描述如何将编译工具改为gcc7.4.0。(截至目前,笔者已更新至gcc8.3.0)
安装gcc7
若读者已安装有homebrew
,则可直接于终端输入:1
brew install gcc7@
下载完毕后gcc将位于usr/local/Cellar/gcc@7/7.4.0/
,此时可将gcc@7
文件夹重命名为gcc
。
若读者尚未安装homebrew
,可通过1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
完成对homebrew的安装。
配置gcc7
在gcc下载完成后,需要完成环境变量配置。笔者以当前使用的zsh
为例,shell为bash
的用户将命令行中的.zshrc
改为.bashrc
即可。
添加path
在终端中输入1
vim ~/.zshrc
并于其中添加1
export PATH="/usr/local/Cellar/gcc/7.4.0/bin:$PATH"
此时path添加完毕。
添加别名
在完成path添加后,只有在以g++-7
与gcc-7
时才使用gcc7.4.0,出于便捷的考虑,可于.zshrc
内添加alias如下:1
2alias g++='g++-7'
alias gcc='gcc-7'
完成添加后于终端输入1
source ~/.zshrc
至此环境配置完毕,于终端输入gcc -v
后,有输出如下所示:1
gcc version 7.4.0 (Homebrew GCC 7.4.0)
更新动态库
更进一步地,我们需要对动态库执行更新,在终端输入1
find / -name "libstdc++*.dylib"
可发现新动态库位置为1
2/usr/local/Cellar/gcc/7.4.0/lib/gcc/7/libstdc++.6.dylib
/usr/local/Cellar/gcc/7.4.0/lib/gcc/7/libstdc++.dylib
此时可将其复制入/usr/local/lib
下,切记不可关闭SIP后替换原本位于/usr/lib
下的旧动态库,此操作将导致SIP再次开启后无法进入系统。1
2
3cd /usr/local/lib
cp /usr/local/Cellar/gcc/7.4.0/lib/gcc/7/libstdc++.6.dylib ./
ln -s libstdc++.6.dylib libstdc++.lib