You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 14.04.2下无法匹配版本为OpenCV添加额外模块求助

在Ubuntu 14.04.2上安装带contrib模块的OpenCV的解决方案

我太懂这种在旧版本系统上踩坑的感觉了——之前在树莓派16.04上顺风顺水,换到14.04.2就处处碰壁,尤其是OpenCV这种依赖复杂的库。结合我折腾老Ubuntu版本的经验,给你几个针对性的解决思路:

一、先把版本匹配的细节抠到位

你已经知道opencv和opencv_contrib版本必须完全一致,但还要注意:Ubuntu14.04.2自带的gcc是4.8.4,这个版本对OpenCV3.4.x的部分特性支持有限,建议优先尝试OpenCV3.2.0或3.1.0,这两个版本对老gcc兼容性更好。如果一定要用3.4.x,后面编译时要加特殊参数。

二、先把依赖库补全(老系统的依赖包名和新系统不一样)

Ubuntu14.04已经停止官方更新了,首先得把源换成旧版本镜像,不然连依赖都装不上:

sudo sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y

然后安装所有必须的依赖,包括contrib模块需要的:

# 基础编译工具和核心依赖
sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# 图像格式依赖
sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
# contrib模块额外需要的依赖
sudo apt install libopenexr-dev libwebp-dev libgdal-dev libv4l-dev libxvidcore-dev libx264-dev
# Python相关(如果需要Python绑定)
sudo apt install python-dev python-numpy

三、编译时加这些参数避坑

进入OpenCV的build目录后,cmake命令一定要加上这些针对Ubuntu14.04的参数,不然大概率编译失败:

# 假设你的opencv源码在~/opencv/opencv-3.2.0,contrib在~/opencv/opencv_contrib-3.2.0
cd ~/opencv/opencv-3.2.0/build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-3.2.0/modules \
      -D BUILD_EXAMPLES=ON \
      -D WITH_GTK=ON \  # 老系统用GTK2而不是GTK3
      -D WITH_V4L=ON \
      -D WITH_OPENGL=OFF \  # 14.04的OpenGL环境容易出兼容问题,先关掉
      -D ENABLE_PRECOMPILED_HEADERS=OFF \  # 老gcc不支持这个特性,必须关
      -D CMAKE_C_COMPILER=/usr/bin/gcc-4.8 \
      -D CMAKE_CXX_COMPILER=/usr/bin/g++-4.8 \
      ..

四、编译和安装的小技巧

  • 老机器内存有限,编译时不要开太多线程,比如用make -j2而不是-j4,避免内存溢出导致编译中断:
make -j2
sudo make install
sudo ldconfig  # 更新系统库缓存

五、常见错误的快速修复

  1. libjasper相关编译错误:Ubuntu14.04的官方libjasper-dev有bug,手动编译安装最新版:
git clone https://github.com/jasper-software/jasper.git
cd jasper && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make -j2 && sudo make install && sudo ldconfig

然后重新cmake和编译OpenCV。

  1. contrib模块里的xfeatures2d编译失败:如果是专利算法相关的错误,可以临时关闭这个模块(如果不需要的话),在cmake里加-D BUILD_opencv_xfeatures2d=OFF。

  2. Python绑定找不到:确保cmake输出里显示找到了Python2.7(14.04默认是Python2),如果没找到,检查python-dev和python-numpy是否安装正确。

按这个流程走,应该能解决你遇到的问题——毕竟我之前在14.04上折腾OpenCV3.2的时候,就是靠这些步骤搞定的。

内容的提问来源于stack exchange,提问作者bendikiv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:55:05