如何使构建使用两个已安装的OpenCV的较新版本?

时间:2015-10-19 09:57:47

标签: c++ opencv ubuntu

我刚从源代码安装了最新的OpenCV。安装完成后,我发现我的计算机上已经安装了OpenCV。现在我有/usr/include/opencv/usr/include/opencv2在一起。

当我尝试从最新版本编译示例时,它会自动转到目录opencv2以查找头文件。显然,新版本中的一些示例需要仅存在于opencv但不存在于opencv2中的头文件。

我检查了使用的版本如下。

$ pkg-config --modversion opencv
2.4.8

如何清理旧版本并设置环境变量,以便使用更新的版本?

感谢您指出。我没有意识到/opencv/opencv2在正常安装中同时存在。所以这些文件夹无关紧要。

这是我安装OpenCV所做的工作。我在新安装的ubuntu 14.04上遵循了本教程: http://www.bogotobogo.com/OpenCV/opencv_3_tutorial_ubuntu14_install_cmake.php

我git克隆并完成了make install。我认为git源是版本3.0.0,我错了吗?

(很抱歉编辑迟到,非常感谢你的帮助!)

1 个答案:

答案 0 :(得分:2)

为了重现您的问题,我刚从Ubuntu软件包库中安装了OpenCV:

$ sudo aptitude install libopencv-dev

将包含文件放到这些地方:

/usr/include/opencv
/usr/include/opencv2

然后我从这个地方下载并安装了OpenCV:http://opencv.org/

$ cd Downloads/opencv-3.0.0
$ mkdir build
$ cd build
$ cmake ..
[lots of configuration related output ...]
$ make -j7
[lots of build related output ...]
$ sudo make install
[lots of installation related output ...]

pkg-config现在找到更新的版本:

$ pkg-config --modversion opencv
3.0.0

包含位于此处:

/usr/local/include/opencv
/usr/local/include/opencv2

如果您想使用以后安装的版本,那么您应该没有问题。 (您确定已正确安装自定义版本:sudo make install?)

您可能想要删除旧版本:

$ sudo aptitude remove libopencv-dev

但是,您应该确保不删除自定义构建所依赖的依赖项(zlib,libjpeg,libtiff,pibpng,...)。

话虽这么说,pkg-config会从最后找到的opencv.pc文件中提供详细信息。

这些是可用文件:

$ locate opencv.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc
/usr/local/lib/pkgconfig/opencv.pc

后者属于较新版本(从源代码构建),第一个属于旧版本(软件包安装)。

这是搜索路径:

$ pkg-config --variable pc_path pkg-config
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

根据搜索路径中条目的这个顺序,您可以通过pkg-config获得更新的版本。