由于我在Mac上安装了gcc-49,因此无法再通过Homebrew找到C++编译器。它总是失败,并显示以下错误消息:

configure: error: C++ preprocessor "/lib/cpp" fails sanity check

运行“brew upgrade -v”会显示以下内容:
...
==> ENV
HOMEBREW_CC: llvm-gcc
HOMEBREW_CXX: llvm-g++
...

我不知道为什么Homebrew要使用这些编译器。为什么不能像其他所有东西一样使用普通的CC/CXX环境变​​量?

我已经发现,通过像Using Homebrew with alternate GCC中所述直接编辑公式,可以将HOMEBREW_CXX更改为使用/usr/local/bin/g++,例如,这使需要C++的公式重新工作。

但是我不想在余下的时间里手动编辑每个公式。如何永久更改此HOMEBREW_CXX环境变量 ?我尝试在.bash_profile中设置它们,并在控制台中运行“export HOMEBREW_CXX = ...”,但这些都不起作用,只能直接编辑公式。

有人有主意吗?

最佳答案

可以肯定,这是一个穷人的解决方案,但是可行:在您的.bashrc.bash_profile中添加一个别名:

alias brew='HOMEBREW_CC=gcc-4.8 HOMEBREW_CXX=g++-4.8 brew'

现在,无论何时使用brew,它都将使用所需的编译器。通过执行以下操作检查其是否有效:
brew --env
HOMEBREW_CC: gcc-4.8
HOMEBREW_CXX: g++-4.8
...

高温超导

08-15 23:00