为随conda安装的仅标头库设置include-path

时间:2018-07-19 13:42:14

标签: c++ conda include-path xtensor

最近,我被建议以包装经理的身份签出conda。不幸的是,我没有成功找到如何使我的编译器找到随conda安装的仅标头库?理想情况下,我完全不需要手动指定编译器的路径。

(上下文是我来自macOS上的自制软件,它在正确的位置创建了符号链接。显然,这是conda避免的。但是,仍然可以采用一种简单的方法来编译简单的示例!)


示例

例如,如果我的代码是下面的代码。 注意:此问题是通用的,与特定软件包无关,我也不需要手动手动指定特定的虚拟环境。

#include <iostream>
#include <xtensor/xarray.hpp>
#include <xtensor/xio.hpp>

int main()
{
  xt::xarray<double> a
    {{1.0, 2.0, 3.0},
     {2.0, 5.0, 7.0},
     {2.0, 5.0, 7.0}};

  std::cout << a;
}

我已使用

“安装”了该库
conda create --name example
source activate example
conda install -c conda-forge xtensor-python

现在我只想用

进行编译
clang++ -std=c++14 test.cpp

请注意,我知道这可行:

clang++ -std=c++14 -I~/miniconda3/envs/example/include test.cpp

但我认为这不是必需的,因为:

  • 路径包括环境(example)。
  • 这取决于系统。

1 个答案:

答案 0 :(得分:0)

至少在unix系统上,一种解决方案是使用

clang++ -std=c++14 -I"${CONDA_PREFIX}"/include test.cpp

因此"${CONDA_PREFIX}"指向当前conda环境的根。在这种情况下:

~/miniconda3/envs/example