GCC: Homebrew 安装 GCC 和 Binutils
文章背景
前段时间,有个博客上面的小伙伴给我发来邮件,问我关于 GCC 相关的知识,对于 GCC 我也只是凭着之前的了解,回复他了。书到用时方恨少呀!
这位小伙伴还在读大学,自学能力比较强,自己出了完成课时之外,还会在网上找资料自学。
我记得自己在大学的时候,对 GCC 一窍不通,只知道 Turbo-C 和那些被强制记住的关键字。
最后告诉他, 我会坚持把自己以前学习过相关 GCC 的知识,以博客的形式输出。于是。就有了 GCC 系列 的文章,希望能够帮到大家。
概要
这篇博客主要分享 macOS 下安装 GCC 和 Binutils 工具。
macOS 终端下输入 gcc -v
, 其实是链接指向了 LLVM 编译器, 不是 GNU 的 GCC.
1 | Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/c++/4.2.1 |
安装 GCC
关于 GCC, 可以参考 维基百科.
执行下面命令, 即可开始安装:
1 | brew tap homebrew/versions |
然后搜索 gcc
1 | brew search gcc |
搜索结果中会显示 gcc 的版本,可以选择安装一个,建议安装最新版。
这里以安装 gcc49 为例。
1 | brew install gcc49 |
brew 会自动为你安装相关依赖,如 gmp4、mpfr2、libmpc08、isl011、cloog018.
这里安装需要等待一段时间…
看到下面的内容, 表示安装完毕.
1 | Pouring gcc49-4.9.2_1.yosemite.bottle.1.tar.gz |
安装成功后, 安装目录在:
1 | /usr/local/Cellar/gcc49/4.9.2_1 |
你在终端直接输入 gcc -v
,其实还是 LLVM,那么如何使用我们 刚安装的 gcc?
1 | cd /usr/local/Cellar/gcc49/4.9.2_1/bin |
可以看到:
1 | c++-4.9 |
Ok,你应该明白了, 在命令行输入 gcc-4.9 -v
就可以使用我们刚安装的 GCC 了,包括 g++ 等工具.
以后使用 GNU 的 GCC 输入 gcc-4.9
就好了。
安装 Binutils
关于 Binutils 可以参考 维基百科.
执行下面命令, 直接安装:
1 | brew install binutils |
同理:
1 | cd /usr/local/Cellar/binutils/2.25/bin |
可以看到你需要的工具:
1 | gaddr2line |
个人感受
在 macOS 上面,即使安装了 GNU 的 GCC,也没有在 Linux 上面用的那么爽,很多 GCC 的命令选项在 macOS 上面无法使用,但不得不承认 LLVM 是比较优秀的编译器。
遇到问题
gcc-4.9 编译代码报错,报错内容如下:
1 | main.c:9:19: fatal error: stdio.h: No such file or directory |
卸载 gcc
重新安装最新版本的 gcc
即可,如果你不知道最新的 gcc
版本是哪个,可以 search 一下。
1 | brew search gcc |
显示结果大致如下:
1 | gcc |
这里以安装 gcc@7
为例,命令如下:
1 | // 卸载原来的 |
GCC 系列博文
GCC: Homebrew 安装 GCC 和 Binutils
扫码关注,你我就各多一个朋友~