c++ - 为使用 conda 安装的仅 header 库设置包含路径

标签 c++ conda include-path xtensor

最近有人建议我查看 conda 作为包管理器。不幸的是,我没有成功找到如何让我的编译器找到一个安装了 conda 的仅 header 库?理想情况下,我希望根本不必手动指定编译器的路径。

(上下文是我来自 macOS 上的自制软件,它在正确的位置创建符号链接(symbolic link)。显然这是 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)。
  • 它取决于系统。
  • 最佳答案

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

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

    从而"${CONDA_PREFIX}"指向当前 conda 环境的根目录。在这种情况下:
    ~/miniconda3/envs/example
    

    关于c++ - 为使用 conda 安装的仅 header 库设置包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424230/

    相关文章:

    python - 如何安装keras-bert? (包未找到错误: The following packages are not available from current channels)

    python - 如何在 conda 虚拟环境中卸载所有未使用的软件包?

    c++ - ‘-’ token 之前应有非限定 ID

    c++ - C++ 中的存储分配语句

    c++ - 如何构建仅算术模板对象?

    jupyter-notebook - Jupyter 内核使用与 Conda 环境不同的 Python 版本

    c - 需要知道我错过了哪些 gcc 开关来编译 C 脚本

    php - 一旦我尝试在文件夹中包含文件,我的相对路径就会中断?

    c++ - 如何从 QT (C++) 中的子进程联系父进程以从类执行方法?

    c++ - Boost Spirit X3 跳过解析器实现?