当前位置:   article > 正文

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

linux交叉编译opencv

目录

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. 1)[编译器] > sudo apt-get install build-essential
  2. 2)[必须安装]> sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
  3. 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

  1. //进入opencv源码文件夹
  2. 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)进入源码根目录

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

2)运行cmake

cmake-gui

3)选择目录

        进入cmake界面。

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

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

4)进入配置界面

5)查找编译器

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

  1. which arm-linux-gnueabihf-gcc
  2. which arm-linux-gnueabihf-g++

 2)编译器所在位置。

  1. arm-linux-gnueabihf-gcc -v
  2. 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: #errorNo suitable threading library available.”

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

#define HAVE_PTHREAD

4.编译

  1. cd build
  2. make -j16
  3. make install

1)opencv库

所需头文件

2)所需第三方库

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/522480
推荐阅读
相关标签
  

闽ICP备14008679号