如何永久覆盖HOMEBREW_CC和HOMEBREW-CXX设置

How to permanently override HOMEBREW_CC and HOMEBREW_CXX settings?

本文关键字:HOMEBREW-CXX 设置 CC 何永久 覆盖 HOMEBREW      更新时间:2023-10-16

由于我在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/CSX环境变量?

我已经发现,通过像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
...

HTH