Anaconda 从本地C++;程序
我试图构建(稍后上传)一个CONDA软件包,它包含了我在C++开发的自定义程序。 为了简化这个问题,我有一个Anaconda 从本地C++;程序,anaconda,conda,miniconda,conda-build,Anaconda,Conda,Miniconda,Conda Build,我试图构建(稍后上传)一个CONDA软件包,它包含了我在C++开发的自定义程序。 为了简化这个问题,我有一个meta.yaml: package: name: CoolName version: "1.0.0" source: path: ./source requirements: build: - make 以及以下build.sh: make 我这里有两个问题: 1) 我应该如何以及在何处复制由make编译产生的二进制文件,以便在环境激活时确实能够识别它?
meta.yaml
:
package:
name: CoolName
version: "1.0.0"
source:
path: ./source
requirements:
build:
- make
以及以下build.sh
:
make
我这里有两个问题:1) 我应该如何以及在何处复制由
make
编译产生的二进制文件,以便在环境激活时确实能够识别它?2) 我应该如何将g++指定为依赖项?我希望此软件包稍后可用于
linux-64
和osx-64
。。。在构建过程中(在Makefile中),我只使用g++
编辑 我已修改生成脚本,使其具有:
make
mkdir -p $PREFIX/bin
cp my_binary $PREFIX/bin/my_binary
现在,conda构建
成功了。但是,当我稍后尝试使用conda install在本地安装程序包时——使用local
我得到:
Collecting package metadata (current_repodata.json): done
Solving environment: done
# All requested packages already installed.
但这不是真的,我的二进制文件没有安装在任何地方,也无法识别
${PREFIX}
要求:
建造:
-{{编译器('cxx')}
我希望这个软件包以后可以用于linux-64和osx-64。。。在构建过程中(在Makefile中),我只使用g++
注意:在Mac上,它将使用clang++
,而不是g++
。确保Makefile尊重${CXX}
环境变量,而不是硬编码g++
但是,当我稍后尝试使用conda install在本地安装程序包时——使用local
我得到:
Collecting package metadata (current_repodata.json): done
Solving environment: done
# All requested packages already installed.
这很奇怪conda安装——使用本地CoolName
可以执行您想要的操作。但这里有一些东西可以尝试:
- 仔细检查您要将其安装到的环境的内容:
conda list
- 尝试安装到新环境:
conda create -n my-new-env --use-local CoolName
- 删除成功生成包之前可能创建的包的任何过时版本:
…然后再次尝试运行
conda install
。谢谢!我删除了所有内容,用我的程序构建了一个新的env
,它可以正常工作!我正在尝试将一个本地C++库转换成一个CONDA包,类似于您所做的。您是否可以分享您的流程/代码回购以供参考?