交叉编译opencv移植到海思3518

1.下载opencv源码

https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/

2.下载cmake-gui

在ubuntu虚拟机上安装cmake-gui,apt-get install cmake-qt-gui,并运行cmake-gui

安装gtk等:apt-get install libgtk2.0-dev pkg-config

3.交叉编译opencv

3.1 导入hisi编译器路径

下图为参考,我实际的是himix100。

 

CMAKE_C_FLAGS和CMAKE_CXX_FLAGS 增加-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4

勾选Release

CMAKE_EXE_LINKER_FLAGS 增加 -lpthread -lrt -ldl

 去除with项的依赖,精简opencv大小

选择生成的静态库还是动态库,这里我编译的是静态库。

根据需要勾选依赖库,是否编译为一个文件

点击Generate

生成后,到build路径执行make -j8,编译生成lib下的库

4.精简动态库

将生成的libopencv_world.a链接到自己的代码编译为so后,可以使用arm-himix100-linux-strip  libxxxx.so再精简生成的动态库,以便在3518下可以放得下。

经过测试,增加CMAKE_C_FLAGS和CMAKE_CXX_FLAGS 增加-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4编译优化,可以使opencv运行时间减少一半。

移除with项依赖和选择所需的库,编译成静态库.a文件再链接自己的代码编译成动态库,可以大大减少生成库的大小。

参考:

https://www.cnblogs.com/chay/p/10384942.html

https://blog.csdn.net/kaychangeek/article/details/78552418

原文地址:https://www.cnblogs.com/linguinost/p/13755876.html