arm编译opencv4.0.1
转自我的微信公众号:嵌入式图像处理
注意:本文只给出编译参考,还未测试
---------------------------------------
4.0.0后的版本需要编译器支持c++11
虚拟机建议内存2G以上
-------------------------------------------------------------------------------------------------------------------------
opencv4.0.0及其拓展库。
源码
拓展库
-----------------------------
ARM:
基本需求同linux下编译,就是需要选择交叉工具链。
在opencv目录下新建release_arm存放编译生成的文件,放置拓展库
执行cmake-gui
点击configure,选择最后一个交叉编译
next,选择交叉编译工具,finish。开始配置
添加拓展库后再次configure
勾选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平台用了。
lib目录里是动态库文件,你也可以选择编译出静态库。
ps:可以对比勾不勾选BUILD_opencv_world,来看看区别。
share目录里有官方提供的特征数据集哦。
arm中使用的linux是无界面的,所以opencv想要用起来,就要靠Qt了。