交叉编译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文件再链接自己的代码编译成动态库,可以大大减少生成库的大小。
参考: