C++ 如何在一台Ubuntu机器上安装2个Opencv版本,以及如何一次激活一个版本进行编译?

C++ 如何在一台Ubuntu机器上安装2个Opencv版本,以及如何一次激活一个版本进行编译?,c++,linux,opencv,image-processing,filesystems,C++,Linux,Opencv,Image Processing,Filesystems,我在我的ubuntu12.04机器上安装了两个版本的opencv,一个在/usr/local/(opencv3.0.0)中,另一个在/usr/(opencv2.4.9)中。 要激活特定版本,我在终端中使用这些命令。 示例:要激活opencv2.4.9 sudo sh -c 'echo "/usr/" > /etc/ld.so.conf.d/opencv.conf' (shell script) sudo ldconfig export PKG_CONFIG_PATH=/usr/lib/pk

我在我的ubuntu12.04机器上安装了两个版本的opencv,一个在
/usr/local/(opencv3.0.0)
中,另一个在
/usr/(opencv2.4.9)中。
要激活特定版本,我在终端中使用这些命令。 示例:要激活opencv2.4.9

sudo sh -c 'echo "/usr/" > /etc/ld.so.conf.d/opencv.conf' (shell script)
sudo ldconfig
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
执行这些命令后,版本正在更改。 通过命令检查,
pkg config--modversion opencv
。 然后我编译了我的代码,使用ldd命令检查了使用过的库, 它列出的是
opencv3.0.0
version不是
opencv2.4.9.

请帮助正确切换opencv版本的方法

提前谢谢

谢谢

我找到了这个问题的解决方案,但我不确定我找到的解决方案是否正确。但它对我来说很好

当我们在不同的位置安装两个版本的opencv时,我们将在{path}/lib/pkgconfig/opencv.pc中找到两个opencv.pc文件。 在上面的示例中,opencv2.4.9的opencv.pc文件位于以下路径usr/lib/pkgconfig/opencv.pc中。 opencv3.0.0的opencv.pc文件位于/usr/local/lib/pkgconfig/opencv.pc路径中 当我们编译代码时,它将在两个位置搜索opencv.pc配置文件,它将使用它得到的第一个,忽略第二个。
因此,如果想要编译特定版本的代码,我们需要从该位置删除这个opencv.pc文件

如果要使用opencv2.4.9,请从opencv3.0.0的lib/pkgconfig/location中删除(或重命名)opencv.pc。如果希望激活opencv3.0.0,请再次将opencv.pc添加到其lib/pkgconfig/位置,并从/lib/pkgconfig/opencv.pc中删除opencv2.4.9的opencv.pc文件


如果有人知道更好的方法,请发表评论。

您仍然可以安装这两个版本,并在环境路径中附加要使用的版本的路径

如果您不知道如何更改系统路径,请检查此()