Ubuntu 20.04源码编译安装OpenCV 4.7.0

这篇具有很好参考价值的文章主要介绍了Ubuntu 20.04源码编译安装OpenCV 4.7.0。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

1--下载OpenCV 4.7.0

2--编译安装OpenCV 4.7.0

3--测试

3-1--查看安装的版本

3-2--基于VSCode和CMake测试项目

4--报错解决(重点!)

4-1--OpenCV与FFmpeg不兼容

4-2--LIBTIFF报错

4-3--系统与Anaconda的库lib冲突

4-4--测试时CMake的find_package报错


前言

        建议先看第4节相关报错及解决方法,再进行安装!

1--下载OpenCV 4.7.0

        下载 OpenCV 4.7.0 的源码 Sources:OpenCV 4.7.0

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

2--编译安装OpenCV 4.7.0

① 解压压缩包:

unzip opencv-4.7.0.zip

② 安装依赖:

cd opencv-4.7.0

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev

③ 编译:

mkdir build 

cd build

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TIFF=ON ..

注:-DBUILD_TIFF=ON 的作用在之后报错的章节中会说明;

④ 安装:

sudo make install -j8

# -j8表示CPU将使用多线程,加快安装速度

3--测试

3-1--查看安装的版本

pkg-config --modversion opencv4

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

        一般情况下,正常输入上面的命令就可以直接查看安装的版本,如果失败可以参考链接1进行配置环境;

3-2--基于VSCode和CMake测试项目

① 编写 main.cpp 文件:

# include<cstdio>
# include"opencv2/opencv.hpp"
 
using namespace cv;
 
int main(){
    printf("Hello, Opencv4!\n");
    Mat image = imread("./test1.jpg"); // 读取图片
 
    namedWindow("img1"); // 创建窗口
    imshow("img1", image); // 显示读取的图片
    waitKey(0);
    return 0;
}

② 使用 g++ 直接编译:

g++ main.cpp -o test `pkg-config --cflags --libs opencv4`

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

③ 使用 CMakeLists.txt 进行编译:

cmake_minimum_required(VERSION 3.10)  # 指定 cmake的 最小版本
project(test) # 设置项目名称
#set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
add_executable(main main.cpp) # 生成可执行文件
target_link_libraries(main ${OpenCV_LIBS} ) # 设置target需要链接的库
mkdir build

cd build

cmake ..

make

./main

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

4--报错解决(重点!)

4-1--OpenCV与FFmpeg不兼容

        博主在使用Ubuntu安装OpenCV前,曾基于源码编译安装过FFmpeg 5.1,两者存在冲突,会出现以下错误:

        ① modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o] Error 1;
        ② modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2

        ③ make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:302: lib/libopencv_videoio.so.4.7.0] Error 1;

        ④ relocation R_X86_64_PC32 against symbol `ff_pw_9' can not be used when making a shared object; recompile with -fPIC;

        出现上面几个错误,均与博主源码编译安装的FFmpeg 5.1有关。

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

解决方法:卸载FFmpeg 5.1,博主改用FFmpeg 4.3得以兼容;

4-2--LIBTIFF报错

        博主在编译安装OpenCV时,出现了以下 LIBTIFF 的错误:

        ① /usr/bin/ld: ../../lib/libopencv_imgcodecs.so.4.7.0: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0';

        ② make[2]: *** [modules/core/CMakeFiles/opencv_test_core.dir/build.make:812: bin/opencv_test_core] Error 1;

        ③ make[1]: *** [CMakeFiles/Makefile2:1985: modules/core/CMakeFiles/opencv_test_core.dir/all] Error 2 make: *** [Makefile:163: all] Error 2;

解决方法:在编译安装的时候加上 -DBUILD_TIFF=ON 的选项,这里参考链接2

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TIFF=ON ..

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

4-3--系统与Anaconda的库lib冲突

        博主在编译安装OpenCV的时候,出现了以下错误:

        ① /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_parse@UUID_1.0';

        ② make[2]: *** [modules/highgui/CMakeFiles/opencv_test_highgui.dir/build.make:122: bin/opencv_test_highgui] Error 1;

        ③ make[1]: *** [CMakeFiles/Makefile2:2938: modules/highgui/CMakeFiles/opencv_test_highgui.dir/all] Error 2 make: *** [Makefile:163: all] Error 2;

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

        报错的原因是Conda 的库与系统的库出现了冲突,具体分析可参考链接3;但博主并没有采用参考链接的解决方法,而是猜测只是由于博主在编译 OpenCV 的时候,并没有退出 Conda 环境;

解决方法:在终端退出Conda环境重新进行编译安装;

conda deactivate

4-4--测试时CMake的find_package报错

        博主在 VSCode 进行程序测试时,无法利用 CMakeLists.txt 进行间接编译,出现了以下错误:

        ① By not providing "FindOpencv.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Opencv", but CMake did not find one.

        ② Could not find a package configuration file provided by "Opencv" with any
  of the following names: OpencvConfig.cmake opencv-config.cmake;

/usr/bin/ld: /home/ubuntu/miniconda3/envs/torch_tst/lib/libopencv_imgcodecs.,Opencv(C++)学习笔记,Linux笔记,opencv,ubuntu,计算机视觉

         一开始,博主以为是没有设置 OpenCV_DIR 导致以上报错,所以参考其它答案使用了 Set 命令设置 OpenCV_DIR,但并不能解决;

        真正的原因其实是,一开始博主在 CMakeLists.txt 中的 find_package(Opencv REQUIRED)使用的小写的 cv,这才导致了错误。但博主在 Windows 和 Mac 系统下都使用了小写的 Opencv 并没有任何错误(离大谱,属实过分!!!),所以这里不确定真正的原因,部分博主分析了可能的原因,具体可参考链接4;

解决方法:将find_package的Opencv改为OpenCV;

衷心建议结合OpenCV Github项目的issue(问题专栏)进行编译安装!!!文章来源地址https://www.toymoban.com/news/detail-792432.html

到了这里,关于Ubuntu 20.04源码编译安装OpenCV 4.7.0的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(161)
  • 【SLAM实战篇】Ubuntu 20.04版本(OpenCV版本4.5.3)对于ORB-SLAM2安装运行,代码编译,自己的数据集构造

    学完SLAM十四讲 心血来潮想跑一下ORB-SLAM2的代码,纯新手小白,自己的踩坑经历进行整理: 本文章主要对ORB-SLAM2进行编译运行。以及自己构建数据集。 源码github地址:https://github.com/raulmur/ORB_SLAM2 终端克隆代码: 查看源代码,其重要的代码库仅为三个文件夹: Example include s

    2024年03月13日
    浏览(54)
  • ubuntu20.04 编译安装运行emqx

    Erlang/OTP OTP 24 或 25 版本 GCC 4.8 或更高版本 Git make openssl-devel libcurl-devel

    2024年02月11日
    浏览(54)
  • Ubuntu20.04安装OpenCV

    开源计算机视觉(OpenCV)是一个主要针对实时计算机视觉的编程函数库。 OpenCV的应用领域包括:2D和3D功能工具包、运动估计、面部识别系统、手势识别、人机交互、移动机器人、动作理解、物体识别、分割和识别、实体影像立体视觉:来自两个摄像机的深度感知、运动跟踪、增强

    2023年04月09日
    浏览(56)
  • Ubuntu20.04安装fortran编译器

    1.打开终端:你可以通过按下 Ctrl + Alt + T 键组合来打开终端窗口。 2.更新包列表:运行以下命令以确保你的包列表是最新的:  sudo apt update 3.安装Fortran编译器:运行以下命令来安装GNU Fortran编译器: sudo apt install gfortran 4.验证安装:安装完成后,你可以运行以下命令来验证F

    2024年02月03日
    浏览(39)
  • 【已解决】Ubuntu 20.04 编译OpenCV 动态链接库指向版本不一致导致出错

    问题:编译OpenCV 4.8.1, 显示出错: /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_type_uint32@LIBFFI_BASE_7.0\\\' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_type_sint32@LIBFFI_BASE_7.0\\\' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to

    2024年02月04日
    浏览(37)
  • 在 Ubuntu 20.04 上安装 OpenCV

    OpenCV 在 Ubuntu 20.04 软件源中可用。想要安装它,运行: 上面的命令将会安装所有必要的软件包,来运行 OpenCV: 通过导入 cv2 模块,并且打印 OpenCV 版本来验证安装结果: 输出: 1.安装构建工具和所有的依赖软件包: 2.克隆所有的OpenCV 和 OpenCV contrib 源 3.下载完成,创建一个临

    2024年01月23日
    浏览(48)
  • ubuntu20.04安装opencv4库

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 opencv官方网站:https://opencv.org/releases/ 终端输入: 在最下面添加: 若显示如下,则成功安装。 上述步骤运行无误后,基本完成了 opencv 4 的安装,接下来使用以下命令验证: 问题解析: 未安装apache an

    2024年02月21日
    浏览(59)
  • ubuntu20.04安装opencv4.7

    执行以下命令安装最新的cmake https://opencv.org/releases/ 1. 将下载的文件【opencv-4.7.0.zip】解压到需要安装的目录,解压后会得到【opencv-4.7.0】文件夹。 2. 打开【opencv-4.7.0】文件夹,并新建build文件夹。 (我是装在/home/user_name/app目录下,其中user_name是我的用户名) 打开刚才新建的

    2024年02月02日
    浏览(68)
  • Ubuntu20.04与22.04 openssl与openssl编译安装

    操作系统openssl版本查看: 推荐根据操作系统默认版本下载对应修复版本 ubuntu20.04 openssl版本:OpenSSL 1.1.1f ubuntu22.04 openssl版本:OpenSSL 3.0.2 首先,使用 wget 命令下载 OpenSSL 的源代码压缩包。从 OpenSSL 官方网站上找到最新版本的源代码。 如下以ubuntu20.04示例: 解压源代码 使用

    2024年02月06日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包