海思3519 OpenCV4.0移植记录

时间:2024-03-26 18:31:16

Data:2019-06-13

Theme:海思3519 OpenCV4.0 移植

 

1.准备工作

1.编译器:arm-himix600-linux交叉编译工具

2.opencv4.0.1源码

(假设所需组件已经安装过了)

2.cmake安装

这里需要安装cmake3以及cmake-gui

下载cmake-3.9.2源码:wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

解压源码安装:

cd   cmake-3.9.2

./configure

sudo make

make install

cmake-gui安装: sudo apt-get install cmake3-qt-gui

 

3.进入opencv源码路径:cd /home/zyy/opencv-4.0.1

    新建build目录和install目录:mkdir build

    mkdir install-hisi

4.opencv 编译

cd build

cmake-gui

进入配置界面:

海思3519 OpenCV4.0移植记录

 

选择好对应的源码路径和build路径,点击configure按照以下选项配置对应编译环境:

海思3519 OpenCV4.0移植记录

 

 

点击next进入交叉编译工具配置界面:

海思3519 OpenCV4.0移植记录

分别填上工具链对应位置:

Operating System:arm-hisiv600-linux

compilers c:/opt/hisi-linux/x86-arm/arm-hisiv600-linux/target/bin/arm-hisiv600-linux-gcc

compilers c++:/opt/hisi-linux/x86-arm/arm-hisiv600-linux/target/bin/arm-hisiv600-linux-g++

target root:/opt/hisi-linux/x86-arm/arm-hisiv600-linux/target/bin

 

点击finish,等configure完成后需要修改相应配置(具体一些配置选项可自行参考网上介绍,这里不过多列举。):

 

取消WITH_CUDA

取消WITH_TIFF 

海思3519 OpenCV4.0移植记录

 

设置安装路径CMAKE_INSTALL_PREFIX=/home/zyy/opencv-4.0.1/install-hisi

海思3519 OpenCV4.0移植记录

 

设置CMAKE_BUILD_TYPE=RELEASE

海思3519 OpenCV4.0移植记录

 

勾选advanced选项,搜索FLAG找到CMAKE_EXE_LINKER_FLAGS,加上-lpthread -lrt –ldl,防止后面编译出错

 

 

修改完成后,点击generate,成功后即可关闭界面,执行make进行编译工作。

 

编译过程中可能会遇到如下错误:

问题一:

 海思3519 OpenCV4.0移植记录

解决方法是找到对应的common.c 文件添加#define HAVE_PTHREAD

海思3519 OpenCV4.0移植记录

问题二:

海思3519 OpenCV4.0移植记录

 

 

网上说:“是系统里面没有安装 zlib开发包.执行 apt-get install zlib1g-dev 。然后重新编译就解决了”。

但是这个对交叉编译的没有用。

这个版本的OpenCV已经包含了第三方的库

3rdparty

 

此处的解决办法如下:

修改顶层目录的

CMakeLists.txt

海思3519 OpenCV4.0移植记录

 

在654行增加以上代码: ocv_include_directories(./3rdparty/zlib/)

按照上面的方法进入到build 路径重新执行Cmake

 

问题三:

海思3519 OpenCV4.0移植记录

该问题应该是:64位ubuntu不兼容32bit工具问题

解决办法如下: 

sudo apt-get update 

sudo apt install lib32z1-dev 

sudo apt-get install lib32z1 lib32ncurses5 

sudo apt-get install lib32stdc++6 

sudo apt-get install lib32bz2-1.0 

sudo apt-get install gcc-multilib g++-multilib

 

问题四:

海思3519 OpenCV4.0移植记录

报错的原因大概就是/usr/local/lib/libz.so是x86的64位架构的,不能用在板子上,所以需要从新编译zlib。

这里只要在cmake-gui配置是勾选上BUILD_ZLIB就可以了