opencv4.5.0 + aarch64 交叉编译

1.下载并解压源码,在Opencv源码中创建文件夹build/和install/文件夹

 

2.进入build/文件夹使用cmake-gui配置

 

配置源码位路径和build路径

选择交叉编译模式

opencv4.5.0 + aarch64 交叉编译_第1张图片

 

 

Operating System(系统名称):Linux

C:工具链的gcc编译器路径。

C++:工具链的g++编译器路径。

Target Root:据说是头文件包含路径,但是随便设置也没问题,不知道具体是干嘛的,所以就随意设置成工具链的文件夹。

Program MOde :Search in Target Root,then native system。(先在绝对路径搜索,再相对路径搜索)。

Libraries Mode:Search only in Target Root。(仅在绝对路径中搜索)

Include Mode :Search only in Target Root。(仅在绝对路径中搜索)

opencv4.5.0 + aarch64 交叉编译_第2张图片

 

点击configure更新数据,若是出现无法生成有效文件的错误,则用su切换成root用户运行cmake-gui即可。设置源码位置和输出文件夹。

 

设置库安装目录

 

设置如下图参数

opencv4.5.0 + aarch64 交叉编译_第3张图片

 

 

 

到此参数基本设置完成,先点configure再点generate,第一次生成可能需要几分钟。

 

3.编译

在build/文件夹下执行 make -j8。

静等有无报错,有报错是很正常的,不要怕。有些其他问题忘了记录,先凑和这样吧…

 

错误1

原因

安装anaconda之后,很多默认的编译器都变成了anaconda自带的了,比如python和gcc等。

决方法

增加  -D WITH_OPENMP=ON

 

错误2

opencv4.5.0 + aarch64 交叉编译_第4张图片

解决方法:
修改opencv下的 /3rdparty/libpng/pngpriv.h  130行

# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

改为

# if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

你可能感兴趣的:(Linux,linux,opencv,交叉编译)