在树莓派64位系统上安装OpenCV时,许多用户都会遇到一个常见问题:libjasper-dev显示无法定位软件包。明明树莓派是64位的,为什么偏偏这个包就装不上呢?
原因其实很简单——Debian官方源里,libjasper-dev只提供了32位版本,并没有64位软件包。对于树莓派64位系统,直接安装自然会提示“无法定位”。如果你使用的是Ubuntu MATE,问题则出在源配置上,没有添加正确的源也会导致同样的报错。
解决方案
下面以树莓派系统为例,分两步轻松解决。
第一步:让64位系统兼容32位软件包
既然64位源里没有,那就让系统能够安装32位的包。树莓派64位系统其实支持32位兼容模式,执行以下命令即可开启:
dpkg --add-architecture armhf apt-get update apt-get install libc6:armhf
这样一来,系统就能顺利安装32位的软件包了。
第二步:从Debian官网手动下载安装
开启兼容模式后,我们可以直接从Debian官网下载对应的32位版本包进行手动安装。
首先访问Debian官网:https://www.debian.org/
点击首页的“软件包”链接。

然后点击“搜索软件包目录”。

在搜索框中输入libjasper-dev,注意发行版一定要选择any,否则可能搜索不到。

进入软件包页面后,选择下载armhf版本(即32位ARM架构)。

下载完成后,用dpkg命令安装:
sudo dpkg -i libjasper-dev_1.900.1-debian1-2.4+deb8u6_armhf.deb
不过,直接安装通常还会提示缺少依赖——最常见的是libjasper1。没关系,按照同样的步骤搜索并下载libjasper1的armhf版本,先安装它。如果还有其他依赖提示,那就继续重复这个过程,直到所有依赖都满足为止。
总结
问题的根源在于64位源里没有libjasper-dev的64位包,所以我们需要绕个弯:开启32位兼容模式 + 手动下载安装armhf版本。虽然步骤多了一步,但这种方法非常稳妥。如果你在Ubuntu MATE遇到同样的问题,记得先确认源是否正确配置,然后同样采用手动下载的方式即可解决。
