linux+rv1126/imx6ull:opencv静态库交叉编译(手把手百分百成功)

本文详细描述了如何在Linux系统上下载OpenCV3.4.1源代码,安装必要的依赖环境,包括编译器、CMake等,并指导用户进行Cmake配置,解决protobuf相关问题,以及最终编译和安装过程。
摘要由CSDN通过智能技术生成

目录

1.下载

2.准备工作

2.1安装依赖环境

2.2安装Cmake

2.3 解压opencv

3.Cmake设置

3.1文件夹选择

1)进入源码根目录

2)运行cmake

3)选择目录

4)进入配置界面

5)查找编译器

6)配置编译器

3.2 编译选项

1)search

2)点击Configure

3)点击generate

4)修改文件

4.编译


1.下载

1)官网自行下载

2)国内镜像网站

2.准备工作

2.1安装依赖环境

1)[编译器] > sudo apt-get install build-essential

2)[必须安装]> sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

3)[可选择安装]> sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2.2安装Cmake

 sudo apt-get install cmake 

2.3 解压opencv

//进入opencv源码文件夹
cd opencv-3.4.1

1)解压 

tar -zxf opencv-3.4.1.tar.gz

2)新建build

mkdir build

3)新建install

mkdir install-rv1126

3.Cmake设置

3.1文件夹选择

1)进入源码根目录

//进入源码根目录
cd ../  

2)运行cmake

cmake-gui

3)选择目录

        进入cmake界面。

        (1)第1个框输入的是:opencv源码文件夹

        (2)第2个框输入的是:opencv的build文件夹(build 是自己新建的) 

4)进入配置界面

5)查找编译器

1)编译器所在位置。对应 (下一个步骤 《配置编译器》的第3、4框) 

which arm-linux-gnueabihf-gcc
which arm-linux-gnueabihf-g++

 2)编译器所在位置。

arm-linux-gnueabihf-gcc -v
arm-linux-gnueabihf-g++ -v

         图中红框的文件夹位置是C/C++库的位置,对应《配置编译器》的第5个框内。写下图地址就可以。

/usr/lib/gcc-cross/arm-linux-gnueabihf

6)配置编译器

(1)第1个框:目前,我个人认为随便命名。 arm-linux

(2)第2个框:随意命名。arm

(3)第3个框:交叉编译器C编译器

(4)第4个框:交叉编译器C++编译器

(5)第5个框:编译器的库文件夹

(6)第6、7、8个框:按照图选择。

        配置完,点击 finish。

3.2 编译选项

        

1)search

        第一个框。search在这里面搜索要修改的选项。

(1)CMAKE_INSTALL_PREFIX 配置安装路径.

        例如:/home/Laser/sunpeng/opencv/opencv-3.4.1/install-rv1126
(2)BUILD_opencv_world

        勾选选择后,opencv生成一个总的库
(3)BUILD_SHARED_LIBS

        如果选择编译静态库,则取消勾选

(4)CMAKE_EXE_LINKER_FLAGS

        建议参数1 -lrt -ldl -lpthread
        建议参数2 -lrt -ldl -lm -lstdc++ -lpthread

(5)BUILD_ZLIB

        勾选。

2)点击Configure

3)点击generate

4)修改文件

      (1)可能会报错

opencv-3.41/3rdparty/protobuf/src/google/protobuf/stubs/common.cc:51:2: error: #error “No suitable threading library available.”

     (2)查看opencv-3.4.1/3rdparty/protobuf/src/google/protobuf/stubs/common.cc文件,发现是找不到HAVE_PTHREAD宏定义导致找不到pthread库,本文解决办法就是在该文件加上该句宏定义(临时解决,有其他更好的方法欢迎告知探讨)

#define HAVE_PTHREAD

4.编译

cd build
make -j16
make install

1)opencv库

所需头文件

2)所需第三方库

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
在 Ubuntu 20.04 LTS 上交叉编译 Qt 4.8.6 并将其部署到目标平台 Linux/imx6ull 上,您需要执行以下步骤: 1. 安装交叉编译工具链 您需要安装适用于 imx6ull 平台的交叉编译工具链。您可以从您的硬件供应商或开发板制造商处获得该工具链。安装工具链后,请确保将其添加到系统 PATH 环境变量中。 2. 下载 Qt 4.8.6 源代码 您可以从 Qt 官方网站下载 Qt 4.8.6 的源代码。请注意,这是一个相对古老的版本,因此您可能需要进行一些修改才能使其与最新版本的 Ubuntu 兼容。 3. 配置交叉编译环境 在终端中,切换到 Qt 4.8.6 源代码目录并执行以下命令: ``` ./configure -embedded arm -xplatform linux-arm-gnueabi-g++ -no-gcc-sysroot -no-cups -no-largefile -no-accessibility -no-sql-sqlite -no-qt3support -no-opengl -no-openvg -no-xsync -no-xcursor -no-xinerama -no-xinput -no-xkb -no-xrandr -no-xrender -no-xshape -no-xkbcommon -no-xxf86vm -no-sm -no-xvideo -no-xlib -no-nas-soundserver -no-glib -no-dbus -no-separate-debug-info -no-webkit -no-script -no-scripttools -nomake demos -nomake examples -prefix /usr/local/qt4.8.6-arm ``` 此命令将配置 Qt 4.8.6 的交叉编译环境,以生成适用于 imx6ull 平台的二进制文件。请注意,此命令中的选项可能需要根据您的具体情况进行修改。 4. 编译 Qt 4.8.6 在终端中,执行以下命令以开始编译 Qt 4.8.6: ``` make ``` 请注意,此命令可能需要一些时间才能完成。 5. 安装 Qt 4.8.6 在终端中,执行以下命令以安装 Qt 4.8.6: ``` sudo make install ``` 此命令将 Qt 4.8.6 安装到 /usr/local/qt4.8.6-arm 目录中。 6. 部署 Qt 4.8.6 到 imx6ull 平台 将 /usr/local/qt4.8.6-arm 目录复制到 imx6ull 平台的文件系统中。然后,在 imx6ull 平台上设置 QTDIR 环境变量以指向该目录。 7. 测试 Qt 4.8.6 在 imx6ull 平台上,打开终端并执行以下命令以测试 Qt 4.8.6: ``` qmake -v ``` 此命令应该输出 Qt 4.8.6 的版本信息。 现在,您已经成功地将 Qt 4.8.6 交叉编译并部署到了 imx6ull 平台。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙八瓶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值