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

标签 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/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/

相关文章:

java - Java 的线程是否像 Linux 上的进程一样工作?

c++ - 以 bad_alloc 异常终止,但堆栈跟踪中没有 "new"

python-2.7 - pyrMeanShiftFiltering中的颜色窗口半径是什么意思?

c++ - SDL 的自定义运算符

c++ - 编译器的延迟静态初始化。在 C++ 中

c++ - 比较对象的 3 个数字属性

c++ - 并行线程同步

Linux 中的 Java Jar 文件 SoftLink

opencv - 尝试使用任何 CUDA 功能时出现段错误

c++ - CMake - 如何将 Pylon 库包含和链接到 OpenCV-C++ 项目