Opencv编译arm平台的静态和动态库
来源:互联网 发布:免费局域网控制软件 编辑:程序博客网 时间:2024/05/16 07:15
opencv 2.4.12移植到arm详细教程
opencv2.4.12
ubuntu12.04
GCC 4.3.2
1.首先下载编译器,解压,设置环境变量,完成后,在终端输入arm后按Tab键,若出现arm的相关的内容,则表示配置正确;
参考:http://blog.csdn.net/luotuo44/article/details/8958990
2.下载cmake,
sudo apt-get install cmake-gui
3.完成以上两步后,现在来进行编译。网上的教程说的很详细了,这里只提几点问题:
onion31s@ubuntu:~/ cmake-gui // 启动cmake
在cmake界面中进行配置
第一步:
第二步:
第三步:
第四步:
第五步:
4.按照上述配置完成后,进入下图划红线的目录(进入自己配置的目录)
onion31s@ubuntu:~/ cd /home/onion31s/A31s_Source_lib/opencv_build
onion31s@ubuntu:~/ make
鉴于网上的参考教程,大多数人这里会报错,这里将错误总结如下:
(1)报错:
Linking CXX executable ../../bin/opencv_test_calib3d
../../lib/libopencv_core.so: undefined reference to pthread_key_create'
pthread_getspecific’
../../lib/libopencv_core.so: undefined reference to
………………..
collect2: ld returned 1 exit status
make[2]: * [bin/opencv_test_calib3d] Error 1
make[1]: * [modules/calib3d/CMakeFiles/opencv_test_calib3d.dir/all] Error 2
make: * [all] Error 2
或者
报错:undefined reference to “dlopen”
undefined reference to “dlysm”
解决方案:修改 目录下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,保险起见,加上-lpthread -lrt -ldl,如下图:
(2)报错:……xxx.cpp internal compiler error:in vect_transform_stmt ,at tree-vect-stmts.c…..
解决方案:这是编译器的Bug建议换个低版本的编译器重新操作;
(3)报错:“……could not read symbols:bad value”
解决方案:进入 cd /home/onion31s/A31s_Source_lib/opencv_build/3rdparty/zlib/CMakeFiles/Zlib.dir/flags.make
将C_FLAGS= -w -Wall 替换成 C_FLAGS=-03 -fPIC -w -Wall
5.报错按照上述方法解决,再make后,执行sudo make install ,此时编译好的库就按照在你指定的目录下了.
6.进入上述的安装库,若没有取消BUILD_SHARED_LI选项,则生产的是.so后缀的库文件,将这些库文件拷贝到板子的/lib目录下。
7.在Ubuntu上编译的时候,编译指令如下:
其中的路径对应到你安装库文件的路径。
8.如果你是静态编译,将上述命令中的.so库文件替换成.a库文件,再在指令最后添加 -static,这样你无须拷贝任何库文件到板子上,直接编译后拷贝编译后的文件在板子上直接即可运行。
现在你的板子上可以跑opencv写的程序了。
qq:3140606578
- Opencv编译arm平台的静态和动态库
- 关于静态与动态编译arm平台程序的比较
- opencv交叉编译arm环境库,静态,动态库和可执行程序
- [opencv]OpenCV项目的动态编译和静态编译
- opencv安装(WinXp平台下,Qt环境)笔记之一—编译动态链接库和静态链接库文件
- opencv安装(WinXp平台下,Qt环境)笔记之一—编译动态链接库和静态链接库文件
- 为Android平台编译支持OpenCL的Opencv静态库
- 编译Android平台的OpenCV生成动态库
- 将交叉编译好的OpenCV移植到ARM平台
- QtCreator动态编译jsoncpp完美支持x86和arm平台
- QtCreator动态编译jsoncpp完美支持x86和arm平台
- QtCreator动态编译jsoncpp完美支持x86和arm平台
- linux编译动态&静态opencv
- JAVA的动态编译和静态编译
- 动态编译和静态编译的区别
- Linux下静态库,动态库,以及arm平台下库的基本概念
- arm平台编译动态库报 relocation R_ARM_MOVW_ABS_NC 错误解决
- 交叉编译arm平台的qt库
- GCC编译器下的-L与-l的区别
- php实现远程网络文件下载到服务器指定目录(方法二)
- 构建微服务:使用API Gateway
- UItextVeiw重写deletebackward方法&&正则表达式
- 学术论文写作的 paper、code 资源
- Opencv编译arm平台的静态和动态库
- 前景目标检测——帧差法
- Android常见的十个高级控件
- 关于flash player更新过程中出现连接错误
- 例题9-14 UVA 1218 Perfect Service 完美的服务(树形dp)
- 快速学习EndNote X7
- java实现多线程的方式以及run方法和start方法的区别
- cf 697 D
- SpringMVC如何接受 js jquery ajax 的数组参数传值