我正在构建一个python库,我想通过pip安装。安装过程需要编译一个cpp文件,并且该cpp文件依赖于libclang(特别是它包含一些clang-c头文件,需要与libclang.so链接)。
我假设最终用户安装了clang ++。但是,我不知道安装的位置。例如,当我在本地安装clang ++时,即使它安装了我需要的所有头文件和库,如果我只编译一个空白的C ++文件
#include <clang-c/CXCompilationDatabase.h>
它找不到它。我需要通过命令行参数或CPLUS_INCLUDE_PATH
显式提供路径。
现在我需要一些pip调用脚本来查找这些头文件的方法。我显然可以要求用户在运行安装过程之前设置CPLUS_INCLUDE_PATH
和LD_LIBRARY_PATH
以包含clang ++的路径,但它看起来很难看。我可以将标题和库添加到我的包中,但我宁愿它根据用户的版本构建。有没有办法找到一个clang ++安装,如果用户有一个(或至少如果他通过apt-get或另一个包管理器安装了一个?),或者一般来说,在构建一个pip时解决这个问题的正确方法是什么包装