【问题标题】:Installing scikit: gcc-4.2 not found, using Clang instead安装 scikit:找不到 gcc-4.2,改用 Clang
【发布时间】:2012-12-05 13:32:15
【问题描述】:

当我尝试在我的 Mac (OS X Lion) 上安装 scikit 时,我偶然发现了这个错误:

没有找到gcc-4.2,用clang代替。

我搜索了如何解决这个问题,it seems 发现环境变量 CC 设置不正确。我现在的问题是,我怎样才能改变这个,我必须改变什么?在我的/usr/lib/ 中,我确实看到了 g++、gcc、llvm-g++-4.2 和 llvm-gcc-4.2 可执行文件。此外,当我检查env 时,我没有看到 CC 变量。即使我尝试导出 CC=gcc,使用 env 命令也看不到它。

【问题讨论】:

  • 如果export CC=gcc 没有出现在env 的输出中,你有问题,或者像tcsh 这样的非sh shell。 echo $SHELL 应该告诉你外壳。并确保您没有在env 的输出中错过CC,例如:env | grep CC
  • 当我执行 printenv CC 时,我确实看到了 gcc ,错误指出它找不到 gcc-4.2 ...
  • 顺便说一句,如果您通过python setup.py build/install 安装,您可以在该行前面加上CC=/usr/bin/gcc python setup.py build(可能还有其他变量,例如c++ 编译器)。
  • 这是正确的编译器吗?因为似乎也有这个 llvm-gcc-4.2
  • 顺便说一句,哪个 scikit?如果我知道哪一个,我可能会想亲自尝试一下安装程序。请注意,我的带有 Lion 的 Mac 确实有 /usr/bin/gcc-4.2,所以我不知道你的去了哪里......

标签: python gcc clang llvm-gcc


【解决方案1】:

有多种方法可以做到这一点:

  1. 如果您使用make 编译源代码,请使用以下命令:

    make CC=/path/to/gcc CXX=path/to/g++ 
    make CC=/path/to/gcc CXX=path/to/g++ install 
    etc.
    
  2. 您可以通过以下方式永久更改默认编译器:

    cd /usr/bin
    rm cc c++ gcc g++
    ln -s gcc-4.2 cc
    ln -s gcc-4.2 gcc
    ln -s c++-4.2 c++
    ln -s g++-4.2 g++
    

不过,您也应该尝试一下 clang - 它一点也不差,而且在许多情况下,它可以生成与 gcc 相同或更好优化的程序。

【讨论】:

    【解决方案2】:

    如果 scikits 明确在寻找 gcc-4.2,听起来它在设置过程中是硬编码的(坏主意 i.m.o.)。

    然后我会选择符号链接解决方案;与我的评论或 Ramneek 的回答有点不同,但几乎相同:

    sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2
    

    【讨论】:

      【解决方案3】:

      gcc 等不应该出现在 /usr/lib/ 中,而(也)应该出现在 /usr/bin/ 中。 /usr/lib/ 中的那些是子目录,/usr/bin/ 中的那些是可执行文件。

      很可能您在这些子目录中有库,但没有实际的可执行文件和头文件。

      您在安装 XCode 期间是否安装了命令行工具?

      【讨论】:

      • 我安装了命令行工具,我在 /usr/bin/ 中看到了 gcc 和 g++(但没有 gcc-4.2)
      • 您当然可以将gcc-4.2 符号链接到gcc,但您不必这样做。你检查过你的外壳吗?您需要了解为什么可以将CC 设置为环境变量。
      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2016-03-16
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多