anaconda - 如何从anaconda使用gcc?当我编译文件时,它提示找不到像 stdio.h 这样的系统头文件

标签 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 及其系统 header ,因为我希望它尽可能便携。

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

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

最佳答案

对我有用的是:

  • 从头开始,安装最新版本的 miniconda。特别是 conda 4.6 切换到了一个更好的依赖图 SAT 求解器。
  • 将 channel_priority 设置为 false ( conda config --set channel_priority false )
  • 最小化 channel 集。您可能只需要 defaultsconda-forge (可选地从其他 channel 添加一些特别的包,见下文)。所以你可以运行 conda config --add channels defaults; conda config --add channels conda-forge .
  • 避免拥有一个满足不同需求的大型环境。相反,为每个项目/工具创建一个环境。

  • 您的 .condarc文件应如下所示:
    $ cat ~/.condarc
    channels:
      - conda-forge
      - defaults
    channel_priority: disabled
    

    如果您需要在 defaults 之外安装软件包和 conda-forge ,您应该尝试仅安装带有 channel 前缀的它们,并让 conda 从 defaults 获取它们的依赖项和 conda-forge ,例如conda install bioconda::snakemake

    关于anaconda - 如何从anaconda使用gcc?当我编译文件时,它提示找不到像 stdio.h 这样的系统头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47412306/

    相关文章:

    python - Flask-Toastr安装

    python - 我可以将我的 TensorFlow Python 环境从 Windows 转移到 Ubuntu 吗?

    python - 为什么在 Windows PC 中启动虚拟环境时收到此消息

    python - PyCharm 终端错误

    python - Conda - 静默安装包

    python - CondaVerificationError : || ClobberError: Create a new conda environment with Python 2. 7.x 或 3.7.x

    python - Pandas :无法导入名称兼容

    python - 我无法在 ubuntu 上运行 conda 命令/激活环境?

    python - 由于 virtualenv 或 conda,neovim 无法正确找到 python?

    python - 搞砸了 numpy 安装 - `GFORTRAN_1.4' 未找到错误