我一直在尝试使用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)其他人有没有发现这个问题,或者找到更好的解决方案?
发布于 2021-09-29 04:03:50
cookie cutter示例中的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 (如果可用),这比尝试可能的目录更健壮。
https://stackoverflow.com/questions/69363344
复制相似问题