cppyy cmake 构建找不到 LibClang
Cppyy cmake build unable to find LibClang
我一直在尝试使用 cppyy 为 C++ 库构建一些 python 绑定。目前我正在使用这里的 cookiecutter 食谱:https://github.com/camillescott/cookiecutter-cppyy-cmake
但是包在查找 LibClang_LIBRARY
和 LibClang_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)
有没有其他人发现这个问题或更好的解决方案?
千篇一律示例中的 cmake 片段似乎比 cppyy-cling 中的片段更旧:https://github.com/wlav/cppyy-backend/tree/master/cling/python/cppyy_backend/cmake
(这些是安装在Python site-packages
目录下cppyy_backend/cmake
下的。)
新版本使用谓词保护搜索,以防变量像您使用 -D...
选项那样被显式定义,我怀疑这将解决您遇到的大部分问题。
如果可用,它还会使用 llvm-config
,这比尝试可能的目录更可靠。
我一直在尝试使用 cppyy 为 C++ 库构建一些 python 绑定。目前我正在使用这里的 cookiecutter 食谱:https://github.com/camillescott/cookiecutter-cppyy-cmake
但是包在查找 LibClang_LIBRARY
和 LibClang_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)
有没有其他人发现这个问题或更好的解决方案?
千篇一律示例中的 cmake 片段似乎比 cppyy-cling 中的片段更旧:https://github.com/wlav/cppyy-backend/tree/master/cling/python/cppyy_backend/cmake
(这些是安装在Python site-packages
目录下cppyy_backend/cmake
下的。)
新版本使用谓词保护搜索,以防变量像您使用 -D...
选项那样被显式定义,我怀疑这将解决您遇到的大部分问题。
如果可用,它还会使用 llvm-config
,这比尝试可能的目录更可靠。