【问题标题】:Error C1083 Cannot open include file: 'pybind11/pybind11.h': No such file or directory错误 C1083 无法打开包含文件:'pybind11/pybind11.h':没有这样的文件或目录
【发布时间】:2018-12-16 16:29:09
【问题描述】:

我想从 Github 运行 T-spline,但每次我尝试构建项目时都会出现此错误。 -我将代码和其他所有内容放在 C:\Program Files (x86) 中。 -我使用 pybind/pybind11,-laumaya/GLC_lib。 -我在 MSVC 中使用 Github 扩展,我直接通过扩展下载所有内容。 我为 T-spline 运行 CMake (3.13.1),看起来一切都很好。我使用 MSVC 15 2017

谢谢

【问题讨论】:

  • 这些信息不足以帮助您。该文件在您的机器上的什么位置?
  • 我尝试了一些不同的位置,但最后一个是 C:\Program Files (x86)。所以源文件和其他所有东西都在那里。我想我必须把它们放在同一个文件中。
  • 我以为我遵循了指示。看看:- 运行 CMake; - 指定源代码和二进制目录(用值“../SOURCE_DIRECTORY”填充相应的条目或拖动“CMakeLists.txt”文件); - 按配置按钮,设置生成器设置(选择 Microsoft Visual C++ (MSVC) 版本); ...... - 按 Generate 按钮(它将生成 SOURCE_DIRECTORY 中的所有二进制文件); - 在 MSVC 中打开 tspline.sln 文件并构建解决方案;
  • 当我到达最后一个“打开 tspline.sln...” 一切似乎都很好!?但是当我试图在 MSVC 上构建它时,我总是会犯同样的错误!!!

标签: c++ cmake pybind11


【解决方案1】:

如果你使用的是pybind11,那么you shouldn't do it this way

首先在你的 git repo 中将 pybind11 作为一个子模块,或者在你的源代码树中检查它并调用:

add_subdirectory(${CMAKE_SOURCE_DIR}/3rdParty/pybind11)

然后就可以创建一个pybind模块了:

 pybind11_add_module(${NAME} MODULE ${SRC} ${HEADERS})

这样,如果缺少某些内容,您将在 CMake 启动时看到它,而不是在构建期间。

【讨论】:

  • 你的意思是这样的吗?add_subdirectory(${TSPLINE}/3rdParty/pybind11) pybind11_add_module(${TSLPINE} MODULE ${TSPLINE} ${TSPLINE})
  • 差不多。 add_module 的第一个参数是您想要的名称,然后您就有了要编译的文件列表。我不认为 ${TSPLINE} 是一个名称、一个文件夹和一个文件列表。但你快到了。另请参阅文档以获取另一个使用示例(我的答案中的链接)。
猜你喜欢
  • 2018-03-05
  • 2014-01-28
  • 2017-02-12
  • 2017-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 1970-01-01
相关资源
最近更新 更多