http://blog.sina.com.cn/s/blog_6592a07a01019yw6.html
linux2.6.28
配置
./configure --host=arm-linux --without-carbon --without-quicktime--without-1394libs --without-ffmpeg --without-python --without-swig--without-gtk --enable-static --enable-shared --disable-apps--without-gtk --prefix=/home/opencv_arm--libdir=/home/opencv_arm/lib--includedir=/home/opencv_arm/include
编译
make
安装
make install
在/home/opencv_arm/文件夹下生成三个文件夹
include lib share
lib目录下存放共享库*.so.*
不管移植不移植,在opencv没有和qt结合以前,大家要先写个小例子测试一下。新建test.c文件,代码如下
如果用QT写程序
需在*.pro文件中添加,包含opencv头文件和库文件路径
INCLUDEPATH +=/home/opencv_arm/include/opencv
LIBS += -L/home/opencv_arm/lib -lcxcore -lhighgui -lcv
将上面的程序拷贝到板子上,我的目录为 /mnt/opencv_arm
然后添加库文件路径
用qt调用opencv写好程序后 ../../qmake
当arm-linux为4.3.2时, opencv没问题,qt会包很多错,因为我的qtopia4.5是用arm-linux3.4.1移植的,当然会报错。
于是用arm-linux3.4.1 ,qt不会报错,可是opencv2.0会报错,因为opencv2.0只能支持arm-linux4.x以上的版本。否则
改4 为3,这个错误解决了,还会出现很多其他的错误。根本原因是opencv2.0得调用4.x以上的版本。于是只好去移植opencv1.0.
2.opencv1.0的移植
http://www.opencv.org.cn/forum/viewtopic.php?t=11314
http://hi.baidu.com/xiangjunzhao/item/ab1ca33b3dfa235d023edc53
1.安装opencv1.0
./configure --host=arm-linux--without-gtk --without-carbon --without-quicktime--without-1394libs --without-ffmpeg --without-python --without-swig--enable-static --disable-shared --disable-appsCXXFLAGS=arm-linux-g++ CPPFLAGS=-I/usr/include CXXFLAGS=-O2--prefix=/home/opencvarm1.0
下边是我自己的理解:
CXXFLAGS=-O2 :对编译进行优化//在编译时,尽量用-O2进行优化,否则容易出问题,
make
makeinstall
如果在make 过程中遇到如下error:
In file included from _cxcore.h:60:0,
../../cxcore/include/cxmisc.h:133:6: error: #elif with noexpression
make[3]: *** [cxalloc.lo] 错误 1
make[3]: 离开目录“/home/ying/opencv-1.0.0/cxcore/src”
make[2]: *** [all-recursive] 错误 1
make[2]: 离开目录“/home/ying/opencv-1.0.0/cxcore”
make[1]: *** [all-recursive] 错误 1
make[1]: 离开目录“/home/ying/opencv-1.0.0”
make: *** [all] 错误 2
解决办法: .
再次执行以上的配置及安装命令
后来发现opencv1.0 不支持v4l2接口,只支持v4l接口,放弃此想法。怎么办,怎们办 ??
3.于是用arm-linux4.3.2移植qt,由于要用4.0以上的编译器,于是重新移植内核2.6.28.
配置内核特点使用ARMEABI编译,必须配置这个选项,因为要和arm-linux4.0以上兼容。改用4.3.2编译内核(这个不是必须的,3.4.1也可以)。同时加载4.3.2的工具练到板子上,具体如下:
在板子上运行带有opencv的qt程序时会出现以下错误:
./camopencv:/usr/lib/libpng12.so.0: no version information available (requiredby /mnt/opencv_arm/lib/libhighgui.so.4)
./camopencv: /lib/libc.so.6: version `GLIBC_2.0' not found(required by /usr/lib/libpng12.so.0)
./camopencv: /lib/libc.so.6: version `GLIBC_2.0' not found(required by /usr/lib/libjpeg.so.62)
exportLD_LIBRARY_PATH=/mnt/usrlib4.3.2:$LD_LIBRARY_PATH