问题切入:
原本你在Linux下写的C++11的程序调试到最终运行都一切正常,搬到了macOS+gcc的开发环境下再次调试的话,就遇到了莫名其妙的错误..
默认情况下,通过homebrew安装最新版本的gcc编译器,仍然得到g++的编译器旧版本的4.2.1,很明显gcc在安装的时候,不是brew就是macOS在安装过程中做了手脚,于是我就对macOS起疑心了.....
其实Apple给用户挖坑也不是第一次了,还记得以前手机系统升级,强制用户更换手机的事件吗?
macOS:“在老子地盘下写代码就得用X-Code开发套件”~的流氓嘴脸
homebrew安装最新版本的gcc编译器,仍然得到g++的编译器旧版本的4.2.1
通过Homebrew安装的包保存在/ usr / local / Celler /中,命令别名自动粘贴在/ usr / local / bin /中。从/ usr / local / bin /中查找到gcc和g++的相关别名,如下图
macOS默认不会我们刚才安装的gcc最新版本
从上图我们可以得知,我们需要的是gcc-8和g++-8这两个编译器,那么只需要为这两个编译器取回gcc和g++的别名即可。
$ ln -s /usr/local/bin/gcc-8 /usr/local/bin/gcc
$ ln -s /usr/local/bin/g++-8 /usr/local/bin/g++
为gcc和g++正名
之后,程序调试就正常了....
网友评论