我刚刚从源头上安装了最新的OpenCV。安装之后,我发现OpenCV已经安装在我的计算机上了。现在,我有一个/usr/include/opencv和一个/usr/include/opencv2在一起。
当我试图从最新版本编译一个示例时,它会自动转到opencv2目录查找头文件。显然,新版本中的一些示例需要只存在于opencv中而不存在于opencv2中的头文件。
我检查了正在使用的版本如下。
$ pkg-config --modversion opencv
2.4.8如何清理旧版本并设置环境变量,以便使用更新版本?
谢谢你的指点。我没有意识到/opencv和/opencv2同时存在于正常的安装中。所以这些文件夹是无关紧要的。
下面是我在安装OpenCV时所做的工作。我在新安装的ubuntu14.04:cmake.php上遵循了本教程
我克隆并完成了完整的安装。我以为git的源代码是3.0.0版的,我是不是错了?
(很抱歉后期编辑,非常感谢您的帮助!)
发布于 2015-10-19 12:19:56
为了重现您的问题,我刚刚从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获得更新版本。
https://stackoverflow.com/questions/33211553
复制相似问题