海思交叉编译opencv4(以opencv400为例)

海思交叉编译opencv4(以opencv400为例)

海思交叉编译器的安装

解压aarch64-himix100-linux.tgz,然后使用sudo权限运行gcc-arm-none-eabi-4_9-2015q3.install

正常情况下应无报错信息。

opencv的编译

  • 下载opencv4.0.0和opencv_contrib,将其分别解压。

  • 对于opencv4.0.0,修改最顶层的CMakeList.txt,找到ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR}),并在下面添加:

ocv_include_directories(./3rdparty/zlib)

用以解决fatal error: zlib.h: No such file or directory #include “zlib.h”:

  • 修改opencv4.0.0/3rdparty/libpng/CMakeLists.txt,在最前面添加
IF(HISI3559A)
	SET(ARM 1)
	SET(ENABLE_NEON 1)
ENDIF()

用以解决libopencv_imgcodecs.so.4.1.0: undefined reference to png_init_filter_functions_neon

或者也可以修改opencv4.0.0/3rdparty/libpng/pngpriv.h

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

注释,即改为

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

并在其下面添加一行

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

两种方案均可。

新建build.sh,里面存放着cmake的命令

cmake \
    -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc \
    -DCMAKE_CXX_COMPILER=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ \
    -DBUILD_SHARED_LIBS=ON \
    -DCMAKE_CXX_FLAGS=-fPIC \
    -DCMAKE_C_FLAGS=-fPIC \
    -DCMAKE_EXE_LINKER_FLAGS=-lpthread -lrt -ldl \
    -DENABLE_PIC=ON \
    -DHISI3559A=1 \
    -DCMAKE_INSTALL_PREFIX=../../opencv4/ \
    -DWITH_IPP=OFF \
    -DWITH_ITT=OFF \
    -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.0.0/modules \
    ..

这里需要特别注意-DWITH_ITT=OFF,要不然会找不到TBB定义。至于IPP因为是intel的,保险起见关掉了。

cmake过程中,可能会出现一些需要下载而且特别慢的地方。例如ippicv,这些需要进入相应的module下,修改cmake或者makefile,将url改为file:/path/to/the/file。

然后执行命令:

mkdir build
cd build
cp ../build.sh .
./builld.sh
make -j8
make install

涉及的文件可以从我的百度网盘下载:
链接:https://pan.baidu.com/s/10Y_RxSr7dt6_jpVpzw_zfA
提取码:qxx1

参考资料:

undefined reference to `png_init_filter_functions_neon’_weixin_42330265的博客-CSDN博客

海思3559A上编译OpenCV4.1.0源码操作步骤_网络资源是无限的-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值