在ARM上运用opencv库时遇到的问题

编译的过程中出现如下:

问题1:

查看ARM板上的/usr/lib目录与/lib目录发现都没有libjpeg.so.62这个文件,拷贝一份放到这两个目录当中,注意在Linux上用file命令查看需要ARM版本的,如果不是ARM版本还会提示这个错误,如找不到可以在ARM板上用下图命令进行链接

问题2:

分析认为是运行时libopencv_highgui.solibopencv_objdetect.so链接../../lib/libopencv_core.so时找不到库文件造成的。问题就出在libopencv_core.so前面奇怪的"../../lib/"相对路径。用readelf -d查看libopencv_highgui.so文件信息如下:

Dynamic sectionat offset 0xbcee0 contains 32 entries:

  Tag       Type                        Name/Value

 0x00000001 (NEEDED)                     Shared library:[../../lib/libopencv_imgproc.so]

 0x00000001 (NEEDED)                     Shared library:[../../lib/libopencv_core.so]

 0x00000001 (NEEDED)                     Shared library:[libstdc++.so.6]

 0x00000001 (NEEDED)                     Shared library:[libm.so.6]

 0x00000001 (NEEDED)                     Shared library:[libgcc_s.so.1]

 0x00000001 (NEEDED)                     Shared library:[libc.so.6]

 0x0000000c (INIT)                       0x17a58

 0x0000000d (FINI)                       0xb284c

 0x00000019 (INIT_ARRAY)                 0xc48b0

 0x0000001b (INIT_ARRAYSZ)               12 (bytes)

 0x0000001a (FINI_ARRAY)                 0xc48bc

 0x0000001c (FINI_ARRAYSZ)               4 (bytes)

 0x00000004 (HASH)                       0x114

 0x6ffffef5 (GNU_HASH)                   0x26ac

 0x00000005 (STRTAB)                     0xa370

 0x00000006 (SYMTAB)                     0x4da0

 0x0000000a (STRSZ)                      29540 (bytes)

 0x0000000b (SYMENT)                     16 (bytes)

 0x00000003 (PLTGOT)                     0xc5000

 0x00000002 (PLTRELSZ)                   6040 (bytes)

 0x00000014 (PLTREL)                     REL

 0x00000017 (JMPREL)                     0x162c0

 0x00000011 (REL)                        0x12230

 0x00000012 (RELSZ)                      16528 (bytes)

 0x00000013 (RELENT)                     8 (bytes)

 0x00000016 (TEXTREL)                    0x0

 0x0000001e (FLAGS)                      TEXTREL

 0x6ffffffe (VERNEED)                    0x12190

 0x6fffffff (VERNEEDNUM)                 4

 0x6ffffff0 (VERSYM)                     0x116d4

 0x6ffffffa (RELCOUNT)                   1380

 0x00000000 (NULL)                       0x0

[root@localhostlibfile]# readelf -d libopencv_imgproc.so

 

Dynamic sectionat offset 0x19cef4 contains 29 entries:

  Tag       Type                        Name/Value

 0x00000001 (NEEDED)                     Shared library:[../../lib/libopencv_core.so]

 0x00000001 (NEEDED)                     Shared library:[libstdc++.so.6]

 0x00000001 (NEEDED)                     Shared library:[libm.so.6]

 0x00000001 (NEEDED)                     Shared library:[libgcc_s.so.1]

 0x00000001 (NEEDED)                     Shared library:[libc.so.6]

 0x0000000c (INIT)                       0x1e628

 0x0000000d (FINI)                       0x182e2c

 0x00000019 (INIT_ARRAY)                 0x1a3ca8

 0x0000001b (INIT_ARRAYSZ)               12 (bytes)

 0x0000001a (FINI_ARRAY)                 0x1a3cb4

 0x0000001c (FINI_ARRAYSZ)               4 (bytes)

 0x00000004 (HASH)                       0x114

 0x6ffffef5 (GNU_HASH)                   0x2834

 0x00000005 (STRTAB)                     0xab8c

 0x00000006 (SYMTAB)                     0x4f9c

 0x0000000a (STRSZ)                      64070 (bytes)

 0x0000000b (SYMENT)                     16 (bytes)

 0x00000003 (PLTGOT)                     0x1a5000

 0x00000002 (PLTRELSZ)                   4720 (bytes)

 0x00000014 (PLTREL)                     REL

 0x00000017 (JMPREL)                     0x1d3b8

 0x00000011 (REL)                        0x1b1f0

 0x00000012 (RELSZ)                      8648 (bytes)

 0x00000013 (RELENT)                     8 (bytes)

 0x6ffffffe (VERNEED)                    0x1b150

 0x6fffffff (VERNEEDNUM)                 4

 0x6ffffff0 (VERSYM)                     0x1a5d2

 0x6ffffffa (RELCOUNT)                   81

 0x00000000 (NULL)                       0x0

在ARM板上键入:cd  ../../lib然后通过pwd命令查看发现此目录为/lib

因此把对应的动态链接库放到/lib目录里面,问题解决  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值