【问题标题】:Opencv headers different version and libraries different version: ubuntuOpencv标头不同版本和库不同版本:ubuntu
【发布时间】:2016-03-11 04:47:55
【问题描述】:

我是 Ubuntu 和 OpenCV 的新手。为我的业余行为道歉。

我想我搞砸了 OpenCV 安装。

我在 2.4 个月前安装了 OpenCV。安装成功(使用CMake从源码构建openCV)

几天前,我也使用相同的程序安装了 OpenCV 3.0。 当我的一个代码似乎无缘无故出现分段错误时,问题就开始了。根据 Caffe 神经网络问题论坛 (https://github.com/BVLC/caffe/issues/3416) 上的一位朋友的建议,我似乎正在使用 3.0 标头进行编译,但链接的是 2.4 库。

我检查了 /usr/local/include。它有标准的 openCv 头文件(我不明白'用 3.0 头文件编译是什么意思')

在 /usr/local/lib 我有 OpenCV 3.0 库(根本没有 2.4.8)。

现在编译成功了,但是当我尝试运行它时,我得到了以下错误。

 Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff76c49bc in cv::merge(cv::_InputArray const&,       
 cv::_OutputArray     const&) ()
 from /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4

只是添加

"pkg-config --modversion opencv" 3.0.0

而 dpkg -l | grep libopencv 放弃了

i libopencv-calib3d-dev:amd64 2.4.8+dfsg1-2ubuntu1 用于 libopencv-calib3d 的 amd64 开发文件 ii libopencv-calib3d2.4:amd64 2.4.8+dfsg1-2ubuntu1 amd64计算机视觉相机标定库 ii libopencv-contrib-dev:amd64 2.4.8+dfsg1-2ubuntu1 用于 libopencv-contrib 的 amd64 开发文件 .......

q.1> 为什么我的代码链接到 libopencv_core.so.2.4 而不是 3.0。我已签入 /usr/local/lib 并没有看到一个 2.4 库。我尝试在 CMake 中手动定义指向头文件和库的链接,但结果仍然相同。

q.2> OpenCV 头文件有版本号吗?我不明白它们是如何被称为“2.4 标头”的。我检查了源代码,但没有看到对库版本的任何特定要求。那么是什么要求链接到 2.4 版本的库呢?

对不起,如果这是理论上的,但这对像我这样的初学者非常有益。如果当前问题标题不合适,请对合适的问题标题进行评论。

谢谢

【问题讨论】:

    标签: opencv ubuntu caffe


    【解决方案1】:

    您的 opencv2.4 库位于 /usr/lib/x86_64-linux-gnu/,而新的 opencv3 库很可能位于 /usr/local/lib。链接器首先在/usr/lib/x86_64-linux-gnu/ 目录中查找,因此首先找到opencv2.4 库。要解决此问题,您可以告诉链接器首先查看 /usr/local/lib,方法是将以下内容添加到您的 ~/.bashrc 文件中

    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    

    在终端中重新加载 bashrc 文件如下(或者干脆关闭并重新打开终端):

    source ~/.bashrc
    

    并更新图书馆数据库:

    sudo ldconfig
    

    要检查链接器搜索库的顺序,您可以使用以下命令:

    ld -lopencv_core --verbose | grep attempt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2016-01-18
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      相关资源
      最近更新 更多