如何使用anaconda的gcc?当我编译文件时,它抱怨没有找到像stdio.h

时间:2017-11-21 11:43:25

标签: anaconda conda miniconda

我使用miniconda能够创建一个可以携带它的便携式环境,它拥有软件应用程序中的GCC等依赖关系。

我做了一些简单的事情,比如

conda install gcc
conda install libgcc

尝试使用conda的gcc来编译像

这样的简单文件
#include <stdio.h>

int main() {
  print('hai world');
}

会抱怨,

fatal error: 'stdio.h' file not found

我在MacBook中执行此操作并且我不想安装Xcode开发工具来访问gcc及其系统标头,因为我希望它尽可能便携。

我也尝试使用conda配方为gcc-4.8进行conda-build,但最终抱怨我需要cc(C编译器),它附带Xcode.app,我不想安装。

您是否有任何想法如何通过conda使用gcc与系统头文件,以便我可以使用系统头文件如stdio.h编译文件?

1 个答案:

答案 0 :(得分:0)

对我有用的是:

  1. 从头开始,安装最新版本的miniconda。尤其是conda 4.6切换到了更好的SAT求解器以用于依赖图。
  2. 将channel_priority设置为false(conda config --set channel_priority false
  3. 最小化通道组。您可能只真正需要defaultsconda-forge(可以选择从其他渠道临时添加一些软件包,请参见下文)。这样您就可以运行conda config --add channels defaults; conda config --add channels conda-forge
  4. 避免为各种需求提供一个大型环境。而是为每个项目/工具创建一个环境。

您的.condarc文件应如下所示:

$ cat ~/.condarc
channels:
  - conda-forge
  - defaults
channel_priority: disabled

如果您需要在defaultsconda-forge之外安装软件包,则应尝试仅安装带有频道前缀的软件包,并让conda从defaults和{{1 }},例如conda-forge