Linux多版本opencv配置与“cannot open shared object file: No such file or directory”问题解决

原装opencv2.4.13,sudo make install之后安装到/usr/local/下。

现装opencv3.4.1,为了避免冲突,重新指定安装目录。

1.首先在OpenCV主页下载源码

2.新建文件夹(mydir)用于安装opencv3.4.1

3.修改源码解压之后文件夹中的CMakeLists.txt中安装路径为:

set(CMAKE_INSTALL_PREFIX "mydir" CACHE PATH "Installation Directory")

注意对应Linux平台。然后cmake,make,sudo make install即可安装opencv3.4.1到mydir。(make -j4)表示启用4个线程编译,加快速度。至此安装成功。

4.在opencv编译好后,所在目录中一般会有一个叫OpenCVConfig.cmake的文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。你会发现这一行set(OpenCV_INCLUDE_DIRS     ......    )都变成了/mydir/.....

5.要让CMake找到OpenCVConfig.cmake文件,就指定了opencv的路径。在你自己工程里的CMakeLists.txt里面加上set(OpenCV_DIR "/mydir/opencv-3.4.1/build"),注意加在project()之前;如下:

cmake_minimum_required(VERSION 2.8)
set(OpenCV_DIR "/mydir/build")
PROJECT (HELLO)
SET(SRC_LIST main.c)
find_package(OpenCV REQUIRED)

message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir " ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})

cmake之后出现如下信息表示成功。

6.在有些IDE(如Eclipse CDT)中添加动态库之后编译成功,但运行时可能会出现

error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory

这是因为编译器自己找不到安装后的opencv库的路径,所以需要告诉系统到指定的地方链接。sudo 编辑

/etc/ld.so.conf.d/opencv.conf

加上一行

/mydir/lib

mydir是前文自己安装opencv3.4.1的目录。然后运行

sudo ldconfig -v

即可解决。

7.参考:

https://stackoverflow.com/questions/12335848/opencv-program-compile-error-libopencv-core-so-2-4-cannot-open-shared-object-f

https://blog.csdn.net/jay463261929/article/details/53860593

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ImportError: libcblas.so.3: cannot open shared object file: No such file or directory 是一个错误信息,它表示在运行程序时找不到 libcblas.so.3 这个共享库文件。 同样地,ImportError: libatlas.so.3: cannot open shared object file: No such file or directory 和 ImportError: libjasper.so.1: cannot open shared object file: No such file or directory 也是类似的错误信息,分别表示找不到 libatlas.so.3 和 libjasper.so.1 这两个共享库文件。 这些错误通常发生在程序依赖的共享库文件不存在于系统中的情况下。解决这个问题的方法是安装缺失的共享库文件或者更新程序的配置,使其能够正确地找到这些库文件。 要解决这个问题,可以尝试以下几个步骤: 1. 确认你的系统中是否已经安装了 libcblas.so.3、libatlas.so.3 和 libjasper.so.1 这些库文件。可以使用命令行工具来查找这些文件,比如使用 find 命令:`find / -name "libcblas.so.3"`。如果没有找到这些文件,说明它们未安装在系统中。 2. 如果这些库文件未安装,可以尝试使用包管理器来安装它们。不同的操作系统使用不同的包管理器,比如在 Ubuntu 上可以使用 apt-get 命令,而在 CentOS 上可以使用 yum 命令。具体的安装命令可以根据你使用的操作系统和包管理器进行调整。 3. 如果这些库文件已经安装,但仍然无法找到,可能是程序的配置文件有问题。可以尝试更新程序的配置文件,将正确的路径添加到库文件搜索路径中。需要注意的是,程序的配置文件可能位于不同的位置,具体的位置取决于你使用的程序和操作系统。 通过按照上述步骤进行操作,应该能够解决 ImportError: libcblas.so.3: cannot open shared object file: No such file or directory、ImportError: libatlas.so.3: cannot open shared object file: No such file or directory 和 ImportError: libjasper.so.1: cannot open shared object file: No such file or directory 这些错误。如果问题仍然存在,可能需要进一步调查和排查。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [树莓派中导入opencv库,运行时报库文件缺失的解决办法(mportError: libcblas.so.3 ..... etc.)](https://blog.csdn.net/kevindree/article/details/88772691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值