编译Deepstream 6.0 Python绑定出现pybind11.h无此文件错误如何解决?
问题原因
当前使用的deepstream_python_apps v1.1.0版本的CMake配置未将系统pybind11的头文件子目录加入编译器搜索路径,代码中直接使用#include <pybind11.h>引用头文件,但实际该文件存放于/usr/include/pybind11/路径下,因此编译器无法找到对应文件。
解决步骤
优先使用无需修改源码的方案:
- 清空之前的编译缓存
cd ~/pycharm/libs/deepstream_python_apps/bindings/build rm -rf *
- 执行cmake时手动指定pybind11头文件搜索路径
cmake .. -DCMAKE_CXX_FLAGS="-I /usr/include/pybind11"
- 重新执行编译
make -j$(nproc)
备选方案
如果上述方案无效,可任选以下一种操作:
- 直接修改
bindings目录下的CMakeLists.txt,添加一行头文件路径声明:
修改完成后重新执行cmake、make流程即可。include_directories(/usr/include/pybind11) - 用pip重新安装pybind11,会自动配置环境变量让cmake识别到正确路径:
安装完成后清空build目录重新编译即可。pip3 install pybind11
内容的提问来源于stack exchange,提问作者user1315621
相关产品推荐
相关产品推荐

