【问题标题】:Conda-forge package build fails with: CC required but not found even though compiler is addedConda-forge 包构建失败:需要 CC,但即使添加了编译器也找不到
【发布时间】:2019-10-13 21:59:37
【问题描述】:

我想为https://github.com/uber/h3-py 创建一个 conda-forge 包 并遵循https://conda-forge.org/docs/maintainer/adding_pkgs.html#staging-test-locally的指示。

配方可以在这​​里找到:https://github.com/geoHeil/staged-recipes/blob/h3-py/recipes/h3/meta.yaml

当尝试使用以下命令执行本地构建时:

/.circleci/run_docker_build.sh

它失败了:

echo 'cc required but not found.'

meta.yml 的重要部分如下所示:

requirements:
  build:
    # If your project compiles code (such as a C extension) then add the required compilers as separate entries here.
    # Compilers are named 'c', 'cxx' and 'fortran'.
    - {{ compiler('c') }}
    - {{ compiler('cxx') }}
    - cmake
    - make
  host:
    - python
    - pip
  run:
    - python

我怎样才能让它工作以将其提交给 conda-forge?

cc 是对编译器的一般引用,如何在不分叉源存储库/及其安装脚本的情况下将这样的引用/符号链接添加到 conda 提供的 c、c++ 编译器(可能是 cxx/gcc)?

不应该

- {{ compiler('c') }}
- {{ compiler('cxx') }}

添加这个?

错误是由https://github.com/uber/h3-py/blob/master/.install.sh#L25引起的

command -v cc >/dev/null 2>&1 || { echo "cc required but not found."; exit 1; }

【问题讨论】:

  • stackoverflow.com/questions/45866648/… 可能重复 - 请检查一下,如果它不能解决您的问题,我会看看。
  • 不,我有:cc required but not found,这在我看来不像是重复的。
  • 好的,cc 到底是什么,为什么会调用它?我也找不到这个程序。你的意思是gcc吗?
  • 它源自github.com/uber/h3-py/blob/master/.install.sh#L25,可能是gcc的简称,但我认为{{ compiler('c') }}会添加gcc。如果这还没有发生,我怎么能添加 gcc?
  • 根据stackoverflow.com/questions/1516609/…,On Linux, if it exists, CC is probably a link to g++. 那我怎么才能把g++放到yml文件中呢?

标签: python g++ conda cc conda-forge


【解决方案1】:

我必须创建一个自定义 build.sh 文件:

cmake 不依赖于某些$CC,而是自动使用正确的环境。 https://github.com/conda-forge/staged-recipes/pull/8467/files

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2018-09-24
    • 2022-01-18
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多