ubuntu上opencv4和其它版本opencv如何共存

前言

ubuntu机器上以前装的是opencv343版本,后来又下载了opencv410版本并make 和make install后,输入下面查询opencv版本的命令,发现仍然是opencv3.4.3。

安装不同opencv版本步骤

后来经研究整理了一下安装不同opencv版本并共存的步骤:

1)cmake时为不同版本的opencv指定不同的库安装路径,否则以前版本会被覆盖掉。比方说

安装opencv410的命令: cmake xxx -D CMAKE_INSTALL_PREFIX=/usr/local/lib_opencv410 xxx  

安装opencv343的命令:cmake xxx  -D CMAKE_INSTALL_PREFIX=/usr/local xxx

2)cmake时要enable pkgconfig目录生成。在cmake-gui里面就是如下enable示意图

3) 在make以及make install后,如果上面安装目录不是/usr/local(比方说/usr/local/lib_opencv410),那么还需要手动指定PKG_CONFIG_PATH以便后续pkg-config命令生效。

vi ~/.bashrc

末尾添加下面一行,并且 source ~/.bashrc来使其添加生效。

 

后续补充:如果找不到新生成的pkgconfig目录,那么需要在configure opencv时来enable下面这个选项。

4)查询opencv版本 库以及头文件目录的三个命令来确保上面的opencv安装步骤都正常。

重点 

真正的问题(也是重点)来了,即使按照上面步骤来正确安装了opencv410,然而执行pkg-config --modversion opencv命令,结果仍然是343. 后来发现,对于opencv4以上的版本要使用opencv4才能正确查询到其版本,库以及头文件目录的值。具体命令如下所示

pkg-config --modversion opencv4
pkg-config --cflags opencv4
pkg-config --libs   opencv4

应用 

当opencv3和opencv4在ubuntu上共存时,应用程序编译时可以根据需要 显性指定不同opencv版本的安装头文件以及库目录路径。

比如说,现在一个oencv应用程序(test_opencv.cpp)想要使用opencv410版本库,那么其编译命令如下:

 

顺便补充一句,当多个opencv3版本共存时,对于命令pkg-config --modversion opencv,同时生效的只能是一个版本。可以先用make uninstall先把旧的版本删除掉,然后再对新的版本使用make install。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值