【问题标题】:Cppyy cmake build unable to find LibClangCppy cmake 构建无法找到 LibClang
【发布时间】:2021-09-28 14:11:41
【问题描述】:

我一直在尝试使用 cppyy 为 C++ 库构建一些 python 绑定。目前我正在使用这里的 cookiecutter 食谱:https://github.com/camillescott/cookiecutter-cppyy-cmake

但该软件包无法找到 LibClang_LIBRARYLibClang_PYTHON_EXECUTABLE。如果我使用 conda 或 pip 安装 cppyy,并且在 python 中导入 cppyy 工作正常,情况也是如此。

我尝试使用cmake -DLibClang_LIBRARY=<path/to/libclang> -DLibClang_PYTHON_EXECUTABLE=<path/to/executable> .. 手动定义路径,虽然它随后找到LibClang_LIBRARY,但无法找到LibClang_PYTHON_EXECUTABLE

cmake 找到合适的路径似乎有问题,完整的错误是

CMake Error at /usr/local/Cellar/cmake/3.21.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find LibClang (missing: LibClang_LIBRARY
  LibClang_PYTHON_EXECUTABLE)
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.21.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindLibClang.cmake:47 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/FindCppyy.cmake:286 (find_package)
  CMakeLists.txt:71 (cppyy_add_bindings)

有没有其他人发现这个问题或者更好的解决方案?

【问题讨论】:

    标签: c++ cmake cppyy


    【解决方案1】:

    cookie 切割器示例中的 cmake 片段似乎比 cpyy-cling 中的片段更旧:https://github.com/wlav/cppyy-backend/tree/master/cling/python/cppyy_backend/cmake

    (这些是安装在 Python site-packages 目录下的 cppyy_backend/cmake 下。)

    新版本使用谓词保护搜索,以防变量像您使用 -D... 选项一样明确定义,我想这将解决您遇到的大部分问题。

    它还使用llvm-config(如果可用),这比尝试可能的目录更可靠。

    【讨论】:

    • 谢谢,通过删除 coockiecutter 文件并使用已安装的 make 文件,此错误消失了!
    猜你喜欢
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2018-06-18
    • 2021-07-14
    相关资源
    最近更新 更多