首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使cmake查找pybind11

如何使cmake查找pybind11
EN

Stack Overflow用户
提问于 2020-08-04 20:26:42
回答 3查看 9.7K关注 0票数 7

我正在尝试遵循在c++中使用pybind11嵌入python的简单示例,如页面所示。然而,当试图使用cmake构建解决方案时,我总是收到一个错误:

由于没有在CMAKE_MODULE_PATH中提供"Findpybind11.cmake“,该项目要求CMake查找由"pybind11”提供的包配置文件,但CMake没有找到。 无法找到"pybind11“提供的具有下列任何名称之一的包配置文件: pybind11Config.cmake pybind11 11-config.cmake

我的桌面上有一个名为pybindtest的文件夹,其中包括上面链接中描述的CMakeLists.txt和main.cpp,以及我创建的构建文件夹。在build文件夹中,我尝试了以下几行都没有效果(在Powershell 7上运行):

代码语言:javascript
复制
cmake ..
cmake .. -Dpybind11_DIR=C:/Users/ben.wolfley/Anaconda3/Library/share/cmake/pybind11/pybind11Config.cmake
cmake .. -DCMAKE_MODULE_PATH=C:/Users/ben.wolfley/Anaconda3/Library/share/cmake/pybind11

我使用pybind11安装了conda install pybind11,pybind11Config.cmake在C:\Users\ben.wolfley\Anaconda3\Library\share\cmake\pybind11

EN

回答 3

Stack Overflow用户

发布于 2021-12-18 12:10:58

在没有Anaconda的情况下,如果有人有相同的问题,比如直接使用pip pybind11或手动克隆安装,这两者都会在我的例子中造成问题。用git手动安装pybind11没有安装config pybind11Config.cmake,尽管有一个tools/pybind11Config.cmake.in文件,但我无法将其转换为正确的pybind11Config.cmake

使用pip安装pybind11 global解决了我的问题,并自动卸载了手动git安装:

代码语言:javascript
复制
pip install "pybind11[global]"

它像Anaconda一样安装了适当的config,同时安装了pybind11pybind11-global

票数 8
EN

Stack Overflow用户

发布于 2020-08-04 21:29:14

感谢齐瓦列夫为我指明了正确的方向。以下命令发挥了作用:

代码语言:javascript
复制
cmake .. -G "Visual Studio 15 2017" -A x64 `
      -Dpybind11_DIR=C:/Users/ben.wolfley/Anaconda3/Library/share/cmake/pybind11/

我指向的是.cmake文件,而不是文件的目录。为了使代码工作,我还必须指定编译器。

票数 2
EN

Stack Overflow用户

发布于 2021-10-19 06:50:20

在CMakeLists.txt中添加以下内容:

代码语言:javascript
复制
```cmake

设置pybind11 dir

set(pybind11_DIR /User/Caleb/Softwares/pybind11 11)

find_package(pybind11必需)

代码语言:javascript
复制
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63254584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档