我在我的 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
版本,而不是 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/位置删除(或重命名)opencv.pc。再次,如果想激活 opencv3.0.0,请将 opencv.pc 添加到其 lib/pkgconfig/位置,并从/lib/pkgconfig/opencv.pc 中删除 opencv2.4.9 的 opencv.pc 文件。
如果有人知道更好的方法,请发表评论。
关于c++ - 如何在一台 Ubuntu 机器上安装 2 个 Opencv 版本以及如何一次激活一个版本进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940122/