Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何告诉介子在哪个目录中查找依赖项?_C++_Cmake_Conda_Build System_Meson Build - Fatal编程技术网

C++ 如何告诉介子在哪个目录中查找依赖项?

C++ 如何告诉介子在哪个目录中查找依赖项?,c++,cmake,conda,build-system,meson-build,C++,Cmake,Conda,Build System,Meson Build,我从CMake到meson。 我喜欢在隔离的环境中使用conda。通过这种方式,我可以控制为每个项目安装哪些软件包 现在,在cmake中,我将传递-DCMAKE\u FIND\u ROOT\u PATH=$CONDA\u PREFIX,以便在不同的目录(在我的例子中是CONDA env)上创建搜索过程的根目录 所以我的问题是,我如何在介子上实现相同的效果 这是我的小型介子。构建供参考: 项目('foo','cpp') cpp=meson.get\u编译器('cpp') spdlog=cpp.fi

我从
CMake
meson
。 我喜欢在隔离的环境中使用
conda
。通过这种方式,我可以控制为每个项目安装哪些软件包

现在,在
cmake
中,我将传递
-DCMAKE\u FIND\u ROOT\u PATH=$CONDA\u PREFIX
,以便在不同的目录(在我的例子中是CONDA env)上创建搜索过程的根目录

所以我的问题是,我如何在介子上实现相同的效果

这是我的小型
介子。构建
供参考:

项目('foo','cpp')
cpp=meson.get\u编译器('cpp')
spdlog=cpp.find_库('spdlog')
可执行文件('foo',
“src/fact.cpp”,
依赖项:[spdlog])

介子
足够聪明,可以在conda env中找到包,前提是您在所述env中安装了
pkg config
cmake

另外-添加外部依赖关系的正确方法是使用
dependency('spdlog')
而不是
find\u library

因此,固定的
介子.build应该如下所示:

项目('foo','cpp')
spdlog=依赖项('spdlog')
可执行文件('foo',
“src/fact.cpp”,
依赖项:[spdlog])

介子接收参数

--pkg-config-path path
这将向pkg配置搜索路径添加路径

添加

spdlog = dependency('spdlog')

只要.pc文件在路径中,就会找到spdlog。应该注意,这不适用于每个
conda
包,因为有些包不提供
.pc
文件。