本文主要是介绍linux+rv1126/imx6ull: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)[编译器] > sudo apt-get install build-essential2)[必须安装]> sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev3)[可选择安装]> 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
这篇关于linux+rv1126/imx6ull:opencv静态库交叉编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!