这真的很烦人。出于某种原因,在 MacOS X 10.11(可能还有以前的版本)上有 gcc
和 g++
命令(在 /usr/bin
中,它们不是别名左右),当使用 -v
参数执行时,给出:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix
所以看起来他们实际上执行了 apple 的 clang 和 clang++ 编译器。现在,当我从终端和通过 makefile 调用这些命令时,我真的需要我的计算机执行 gcc 和 g++。
有两个原因:
- 我喜欢让我的电脑做我要求它做的事。
- 显然 clang++ 使用与 g++ 不同的 c++ 标准库编译东西,当我用
g++-5
(实际 g++,通过自制软件安装)编译和链接我的东西时,这导致我遇到问题CppUnit。
有人知道让 gcc
和 g++
实际调用 gcc 和 g++ 的最佳方法是什么吗?
最佳答案
在您的 PATH 中,在 /usr/bin
之前,包含一个名为 gcc
的符号链接(symbolic link)的目录指向 /.../bin/gcc-5
。
据我所知,最新的 Mac OS X 不允许您更改 /usr
,因此这种保守的解决方案是唯一可用的。
when I invoke those commands, both from the terminal and through makefiles.
如果您在 .profile
中调整 PATH 变量,这两种情况都会被覆盖。
关于c++ - 我可以在 MacOS X 10.11 上让 gcc/g++ 指向 ACTUAL gcc/g++ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34464926/