arm编译opencv4.0.1

转自我的微信公众号:嵌入式图像处理

注意:本文只给出编译参考,还未测试

---------------------------------------

4.0.0后的版本需要编译器支持c++11
虚拟机建议内存2G以上
-------------------------------------------------------------------------------------------------------------------------
opencv4.0.0及其拓展库。

源码
拓展库
-----------------------------
ARM:
基本需求同linux下编译,就是需要选择交叉工具链。


在opencv目录下新建release_arm存放编译生成的文件,放置拓展库

执行cmake-gui

arm编译opencv4.0.1


点击configure,选择最后一个交叉编译

arm编译opencv4.0.1


next,选择交叉编译工具,finish。开始配置

arm编译opencv4.0.1


添加拓展库后再次configure

arm编译opencv4.0.1


勾选BUILD_opencv_world(有用哦,你会体会到的^_^)
generate

在release_arm目录下make,静候完成。【看你电脑性能的时候了到了】

问题:

问题一:
当前4.0.0和4.0.1中笔者在编译中,编译到protobuf编译会报错,这是第三方平台的,估计bug还没修好,或者笔者电脑没安装相应模块。

解决:在cmake-gui中,将WITH_PROTOBUF去勾,相同错误可以类推。


问题二:
../../lib/libopencv_core.so: undefined reference to `pthread_key_create'
../../lib/libopencv_core.so: undefined reference to `dlsym'
../../lib/libopencv_core.so: undefined reference to `pthread_getspecific'
../../lib/libopencv_core.so: undefined reference to `pthread_key_delete'
../../lib/libopencv_core.so: undefined reference to `dlopen'
../../lib/libopencv_core.so: undefined reference to `pthread_setspecific'
../../lib/libopencv_core.so: undefined reference to `dlclose'
collect2: error: ld returned 1 exit status

解决:cmke-gui配置:CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl ,看不到选项的话将Advanced打勾

问题三:
估计就是一些奇葩错误,只要说什么代码出现问题的,赶紧去重新下一个正常的版本。

制定安装路径
建好安装的目录,如下
sudo make install 安装到/opt/opencv-arm-4.0.0
这个库呢就可以在arm平台用了。

arm编译opencv4.0.1

lib目录里是动态库文件,你也可以选择编译出静态库。

ps:可以对比勾不勾选BUILD_opencv_world,来看看区别。

share目录里有官方提供的特征数据集哦。

arm中使用的linux是无界面的,所以opencv想要用起来,就要靠Qt了。