关于opencv在arm上的移植问题

关于opencv在arm上的移植问题,第1张

ubuntu intrepid + arm-linux-gcc(2.95.3)

所使用的交叉编译器,似乎与编译器对 stl 的支持程序有关。

目前可知的是,openmoko 提供的编译器编译1.0.0及1.1.0均有问题。

1、编译opencv-1.0.0

$ cd opencv-1.0.0

$ mkdir buildcd build//这样处理是比较干净,也方便。

2.95.3对opencv-1.0.0正常,暂未发现问题。编译opencv-1.1.0则存在问题。

另,ELDK-4.2已经安装好,其支持都很是完整。另行测试。

1)配置(共享库及静态链接)

//共享库

$ ../configure --host=arm-linux --prefix=/home/goosen/visions/install --without-gtk --without-v4l --disable-apps

//静态编译

$ ../configure --host=arm-linux --prefix=/home/goosen/visions/install --without-gtk --without-v4l --disable-apps --enable-static --disable-shared

此处若配置target=arm-linux,并没有检测交叉编译器。因此选择配置--host=arm-linux-gcc 。

静态编译opencv成功,只是编译应用程序则出现大量的’undefined reference‘。

对于ffmpeg, v4l及gtk的支持。需要整理文档(基本步骤,碰到的问题及初步分析)。

2)编译(安装于~/visions/install/)

$ makemake install

$ ls ~/visions/install/ //opencv 安装于 --prefix所配置目录下

include lib share

2、设置环境变量及编译sample(c 源码)

1)编译例程

//opencv共享库,均正常。

//暂时无法实际测试,所使用的9200板子,未有LCD,另gtk未支持。

$ sh build_all.sh

$ file drawing

drawing: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

//编译 drawing.c(静态链接opencv)

$ arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`

/home/goosen/visions/install/lib/libcxcore.a(cxerror.o):???'__static_initialization_and_destruction_0'?:

cxerror.o(.text+0x518): undefined reference to `pthread_key_create'

collect2: ld returned 1 exit status

修改/home/goosen/visions/install/lib/pkgconfig 下opencv.pc, 加编译参数 -lpthread

2)设置及修改。设置 PKG_CONFIG_PATH

$ export PKG_CONFIG_PATH=/home/goosen/visions/install/lib/pkgconfig

$ cd opencv-1.0.0/samples/c

修改build_all.sh

gcc -> arm-linux-gcc

g++ -> arm-linux-g++

//eldk的很好很强大,寻找时间进行进一步测试。

另,需要对ppp协议中的LCP协商部分,做更为深入的了解。

首先,先要再linux上安装opencv的库,

在线安装的话,很容易 然后,

编译的时候需要加上 `pkg-config opencv --libs --cflags opencv` 参数

编译环境fedora9.0

xvid版本:xvidcore-1.3.2.tar.gz

x264版本:x264-snapshot-20110612-2245.tar.bz2

yasm版本:yasm-0.7.2.tar.gz

ffmpeg版本:ffmpeg-0.5.3.tar.bz2

OpenCV版本:opencv-2.0.0

上面这些文件可以到http://download.csdn.NET/detail/wc7620awjh/4866855处进行下载!

首先安装x86平台下opencv,网上很多都只有arm上opencv的移植,但对于开发阶段,都是在pc机的Linux环境下开发测试的,所以这里先介绍一下x86平台下opencv的移植。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7408186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存