conda环境Jetson Nano编译带GStreamer的OpenCV时cmake报错如何解决?
问题根因
你出现路径拼接错误的核心原因是OPENCV_EXTRA_MODULES_PATH参数的路径值缺少开头的根路径斜杠:
你填写的参数为-D OPENCV_EXTRA_MODULES_PATH=home/ktbm/Downloads/opencv_contrib-master/modules,属于相对路径,cmake会自动将当前build目录的绝对路径拼接到相对路径前面,才会出现/home/ktbm/Downloads/opencv/build/home/ktbm/...的错误路径。
同时你提交的cmake命令存在多行输入无续行符、参数值换行拆分的格式问题,也会导致参数识别错误。
修复步骤
- 首先清空build目录的缓存文件,避免之前的错误配置残留影响:
cd /home/ktbm/Downloads/opencv/build rm -rf ./*
- 修正所有参数错误,使用添加了续行符的完整cmake命令执行配置:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D PYTHON_EXECUTABLE=$(which python3) \ -D BUILD_opencv_python2=OFF \ -D CMAKE_INSTALL_PREFIX=/home/ktbm/miniconda3/envs/THOR_test \ -D PYTHON3_EXECUTABLE=$(which python3) \ -D PYTHON3_INCLUDE_DIR=/home/ktbm/miniconda3/envs/THOR_test/include/python3.9 \ -D PYTHON3_PACKAGES_PATH=/home/ktbm/miniconda3/envs/THOR_test/lib/python3.9/site-packages \ -D WITH_GSTREAMER=ON \ -D BUILD_EXAMPLES=ON \ -D WITH_VTK=OFF \ -D BUILD_opencv_viz=OFF \ -D OPENCV_EXTRA_MODULES_PATH=/home/ktbm/Downloads/opencv_contrib-master/modules ..
额外排查项
如果修正后仍有contrib相关报错,按以下顺序排查:
- 确认
opencv_contrib-master目录确实存在于你填写的路径下,且modules子目录内包含各个扩展模块的源码 - 确认你下载的OpenCV主源码版本和opencv_contrib源码版本完全一致,跨版本编译会出现找不到模块的问题
- 确认你当前操作的终端已经激活了
THOR_testconda环境,避免$(which python3)获取到环境外的python路径
内容的提问来源于stack exchange,提问作者Elad-sh
相关产品推荐
相关产品推荐

