OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 13318|回复: 14

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

[复制链接]
发表于 2008-10-24 10:43:00 | 显示全部楼层 |阅读模式
版主、各位大侠:opencv-1.1.0在fdeora 8平台的X-86环境已通过,能正常使用,但小弟在交叉编译时却不能通过,错误如下(交叉编译器:arm-linux-gcc-2.95.3版本,工作正常。):
(1) ./configure --host=arm-linux --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX=arm-linux-g++ CPPFLAGS=-I/usr/include    能够通过。
(2)make   出现错误退出:
pe -O3 -fomit-frame-pointer -c cvkdtree.cpp -Wp,-MD,.deps/cvkdtree.TPlo -o cvkdtree.o
In file included from cvkdtree.cpp:47:
_cvkdtree.hpp:51: limits: ?????????
In file included from cvkdtree.cpp:47:
_cvkdtree.hpp: In method `int CvKDTree<__valuetype,__deref>::dimension_of_highest_variance(__instype *, __instype *, __valuector)':
_cvkdtree.hpp:88: parse error before `>'
cvkdtree.cpp: In function `struct CvFeatureTree * cvCreateFeatureTree(CvMat *)':
_cvkdtree.hpp:88: warning: `double maxvar' might be used uninitialized in this function
_cvkdtree.hpp:88: warning: `double maxvar' might be used uninitialized in this function
cvkdtree.cpp: In method `int CvKDTree<int,CvFeatureTree::deref<float,5> >::insert<int, CvKDTree<int,CvFeatureTree::deref<float,5> >::identity_ctor>(int *, int *, CvKDTree<int,CvFeatureTree::deref<float,5> >::identity_ctor)':
_cvkdtree.hpp:88: warning: `double maxvar' might be used uninitialized in this function
cvkdtree.cpp: In method `int CvKDTree<int,CvFeatureTree::deref<double,6> >::insert<int, CvKDTree<int,CvFeatureTree::deref<double,6> >::identity_ctor>(int *, int *, CvKDTree<int,CvFeatureTree::deref<double,6> >::identity_ctor)':
_cvkdtree.hpp:88: warning: `double maxvar' might be used uninitialized in this function
make[3]: *** [cvkdtree.lo] 错误 1
make[3]: Leaving directory `/root/E-OpenCV/opencv-1.1.0/cv/src'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/root/E-OpenCV/opencv-1.1.0/cv'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/E-OpenCV/opencv-1.1.0'
make: *** [all] 错误 2
[root@localhost opencv-1.1.0]#

各位有没有遇到此问题,哪位给看看,感谢!
回复

使用道具 举报

发表于 2008-10-24 10:50:03 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

你交叉编译前把原来g++编译的东西最好make uninstall, make clean 一下 ,再试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-24 10:58:29 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

我也试过了,问题依旧!感谢!
回复 支持 反对

使用道具 举报

发表于 2008-10-24 11:02:28 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

我也试过了,问题依旧!感谢!

不行的话,换个ToolChain试试,比如2.95.2, 或者我用的是
root@BasicUbuntu:/usr/local/CodeSourcery/Sourcery_G++_Lite/bin# arm-none-linux-gnueabi-g++ -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/sandra/lite/src/gcc-4.2/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion=Sourcery G++ Lite 2008q1-126 --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/sandra/lite/linux/install/arm-none-linux-gnueabi/libc --enable-poison-system-directories --with-build-time-tools=/scratch/sandra/lite/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/sandra/lite/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126)

这个ToolChain编译HighGui模块都是OK的,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-24 11:47:48 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

arm-linux-gcc-2.95.2我试过了,问题一样。你用的那个版本好像没有做好的编译arm程序或库的,自己成功率又不高。我再试试别的办法吧。谢谢。
回复 支持 反对

使用道具 举报

发表于 2008-10-24 12:08:05 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

arm-linux-gcc-2.95.2我试过了,问题一样。你用的那个版本好像没有做好的编译arm程序或库的,自己成功率又不高。我再试试别的办法吧。谢谢。

等等,有点问题,我的源代码里面怎么找不到_cvkdtree.hpp这个文件呢?才看清楚,你是1.1, ft, 我是1.0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-24 12:53:52 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

[quote=&quot;xiexiaofeng&quot;:19yzasz6]arm-linux-gcc-2.95.2我试过了,问题一样。你用的那个版本好像没有做好的编译arm程序或库的,自己成功率又不高。我再试试别的办法吧。谢谢。

等等,有点问题,我的源代码里面怎么找不到_cvkdtree.hpp这个文件呢?才看清楚,你是1.1, ft, 我是1.0 [/quote:19yzasz6]

opencv-1.0.0我试过了,加上--without-v4l 能编译通过,不加也过不去。问题是我要有v4l,是做图像采集的。
回复 支持 反对

使用道具 举报

发表于 2008-10-24 22:54:53 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

[quote=&quot;updayday2008&quot;:3jzabb1a][quote=&quot;xiexiaofeng&quot;:3jzabb1a]arm-linux-gcc-2.95.2我试过了,问题一样。你用的那个版本好像没有做好的编译arm程序或库的,自己成功率又不高。我再试试别的办法吧。谢谢。

等等,有点问题,我的源代码里面怎么找不到_cvkdtree.hpp这个文件呢?才看清楚,你是1.1, ft, 我是1.0 [/quote:3jzabb1a]

opencv-1.0.0我试过了,加上--without-v4l 能编译通过,不加也过不去。问题是我要有v4l,是做图像采集的。[/quote:3jzabb1a]
不加--without-v4l 编译不过去是否是因为系统中没有v4l的库,建议你下载v4l的库安装下!debian中貌似是libpt-plugins -v4l 包,fedora没用过,你找下吧!v4l听说采集效率很低,也可以尝试读摄像头用ffmpeg!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-27 20:39:52 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

已解决!方法是:1.先编译X-86环境的OpenCV库,注意要编译上静态库。2.用arm-linux-gcc-3.4.1编译arm环境的库,出错后退出。3.换目录,用arm-linux-gcc-2.95.3编译,出错后退出,关键:别make clean,直接去arm-linux-gcc-3.4.1编译arm环境的库中copy刚出错退出没编译成功的库文件(/cv/src/下面),两个文件,.lo和.o的各一个,拷到2.95.3编译的相应目录,接着make。4.再出错,同样去拷库,这次要去拷X-86环境的OpenCV库(好像在/otherlibs/highgui/下面),拷到2.95.3编译的相应目录后接着make、make install。5.另装库时最好在 ./configure 时用 --prefix = /usr/local/arm/2.95.3/arm-linux/指定位置。
回复 支持 反对

使用道具 举报

发表于 2008-11-23 14:46:04 | 显示全部楼层

OpenCV arm-linux交叉编译问题(opencv-1.1.0,linux是fdeora 8平台)

不同版本编译器生成的库互相链接,最好搞清楚最终程序的具体行为,我觉得是未定义的。
你这种情况最好自己改改源码,适配统一一个编译器版本。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-26 19:05 , Processed in 0.011457 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表