OpenCV 之T7交叉编译环境配置(三)

  • PC操作系统:VMWare虚拟机上的Ubuntu 20.04 LTS (x86_64)
  • OpenCV版本:3.3.1(已提供)
  • T7源码:t7_offer.tar.gz(已提供)
  • 目标平台:全志T7
  • 编译时间:2021.08.26

一、T7源码设置

1、解压t7_offer.tar.gz

sudo tar -zxvf t7_offer.tar.gz    //找个文件位置解压

2、进入\t7_v1.2.0rls\doc找到《T7_LinuxSDK使用手册_V1.4.pdf》并打开,找到3.1.4小节,按照说明安装编译SDK所需要的软件包:

出现错误:E: 无法定位软件包 mingw32

解决方法:

//此时需要打开下载源文件sources.list 即
sudo gedit /etc/apt/sources.list

//在sources.list末尾添加语句并保存退出
deb http://us.archive.ubuntu.com/ubuntu trusty main universe

//再次更新安装即可
sudo apt-get update
sudo apt-get install mingw32

3、修改Makefile文件,将LICHEE_DIR修改成本地的路径。找到之前编译过的工程文件\pro\t7-test\as_avs,用VS CODE打开,在Makefile工程中修改如下信息:

红色圈住部分 是需要点击修改的地方,LICHEE_DIR位置为解压的T7源码位置,TARGET是交叉编译后的可执行程序的名字。

黄色部分是在后面cmake设置时编译器中gcc、g++的位置路径。

二、OpenCV设置

1、解压OpenCV源码到某一目录

2、安装cmake及其他依赖库

sudo apt-get install cmake
sudo apt-get install cmake-gui
//其他依赖库:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev
libjpeg-dev libtiff4-dev libswscale-dev libjasper-dev

3、进入解压的OpenCV源码目录,新建build-arm文件

cd ~\opencv3.3.1
mkdir build-arm
cd build-arm
sudo cmake-gui

 4、cmake设置

source code源码:选择解压出来的opencv目录
build the binaries编译目录:选择刚才创建build文件夹

继续配置生成目标选项:

 配置两项: Unix Makefiles 、Specify options for cross-compiling

 继续配置编译器

Operating System操作系统:arm-linux

编译器C:选择交叉编译器的gcc,如我的arm-linux-gcc【注意:上图地址有误,应与第一节提到的黄色方框标注相同】


编译器C++:选择交叉编译器的g++,如我的arm-linux-g++
Target Root:选择交叉编译器的bin目录
完成,点击Finish。

 

修改指定编译的内容、路径等信息

修改配置安装目录:找到CMAEK_INSTALL_PREFIX,将默认的/usr/local修改为新建的目录,该操作目的是方便管理交叉编译后的库,若用默认的/usr/local,交叉编译后的库会替换它,以后将不可再用。

勾上BUILD_JPEG 和BUILD_PNG (此2项可选)。去掉WITH_WEBP、WITH_TIFF等(根据实际使用情况选择)。

配置完成,再次点击Configure,点Generate,生成Makefile。完成关闭界面。

5、编译

进入编译目录(即之前的build-arm文件),对CMakeCache.txt进行修改,如下:

cd ~/opencv3.3.1/build-arm
sudo gedit CMakeCache.txt    //打开CMakeCache.txt做以下修改
//找到
CMAKE_CXX_FLAGS:STRING
CMAKE_C_FLAGS:STRING
CMAKE_EXE_LINKER_FLAGS
//修改如下
CMAKE_CXX_FLAGS:STRING =-fPIC -pthread -lrt -ldl
CMAKE_C_FLAGS:STRING=-fPIC -pthread -lrt -ldl
CMAKE_EXE_LINKER_FLAGS:STRING=-fPIC -pthread -lrt -ldl

//-pthread支持线程(gcc编译使用了POSIX thread程序通常需要增加额外的选项);-ldl避免未定义dlopen(加载动态链接库);-lrt避免未定义(链接添加实时库(rt: real time))

开始编译、安装

sudo make
//make编译成功后,安装OpenCV
sudo make install

三、问题解决

问题可能包括:缺乏相关的依赖库、找不到对应的文件

1、出现#error "No suitable threading library available."错误

参考Tina openwrt平台下opencv交叉编译-huangea的博客

解决方法:找到opencv-3.4.0/3rdparty/protobuf/src/google/protobuf/stubs/common.cc文件,在该文件加上该句宏定义#define HAVE_PTHREAD,再重新编译。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值