我刚从源代码安装了最新的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,我错了吗?
(很抱歉编辑迟到,非常感谢你的帮助!)
答案 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获得更新的版本。