交叉编译opencv
2012-02-26 10:04
351 查看
http://www.opencv.org.cn/forum/viewtopic.php?t=9757
由
beckham009 » 2010-04-02 17:08
我使用的编译工具是arm-none-linux-gnueabi-g++
想用opencv写个程序,放到devkit8000(omap3530芯片)开发板上。
在configure指令用的是下面这些
代码:
全选
成功。
Make成功。
Makeinstall成功。
之后进行交叉编译我自己写的程序diejia2.cpp
代码:
全选
出错,信息如下
代码:
全选
好像是highgui交叉编译出问题。
把diejia2.cpp注释掉里面的
代码:
全选
代码之后,没错了。生成了可执行文件。
但是没有cvloadimage怎么读取图像??肯定要有的。
在网上看到好多人说,交叉编译时gtk和highgui是会出问题的,我想只有两条路可以解决问题
1 想办法把highgui交叉编译通过,不知道大家有没有做成的,指教一下
2 不用highgui,有没有其他读图片的方法,初学望指教
beckham009
OpenCV幼儿园宝宝 帖子: 3注册: 2010-04-02 15:20
页首
由
zouyiran » 2010-04-22 23:06
你离成功不远了~~~highgui的确有问题~~所以自己写采集接口吧~~·
至于loadimage~~~我给你三种方法吧~~
1)iplImage = cvCreateImageHeader(cvSize(width,heigth),IPL_DEPTH_8U,1);-
cvSetData(iplImage,pGrayBuffer,width*1); //第3个参数是行字节数
cvReleaseImageheader(&iplImage);
free(pGrayBuffer); //pGrayBuffer是程序里用来放灰度数据的空间,由calloc分配
(2)iplImage = cvCreateImage(cvSize(width,heigth),IPL_DEPTH_8U,1);
iplImage->imageData=pGrayBuffer;
iplImage->imageDataOrigin=pGrayBuffer;
cvReleaseImageheader(&iplImage);
free(pGrayBuffer);
(3) iplImage = cvCreateImage(cvSize(width,heigth),IPL_DEPTH_8U,1);
memcpy(iplImage->imageData,pGrayBuffer,iplImage->imageSize);
cvReleaseImage(&iplImage);
free(pGrayBuffer);
zouyiran
OpenCV小学生 帖子: 8注册: 2010-01-01 3:38
页首
由
beckham009 » 2010-04-26 10:28
感谢楼上,非常感谢!!!
beckham009
OpenCV幼儿园宝宝 帖子: 3注册: 2010-04-02 15:20
页首
由
catch » 2010-08-16 13:36
现在我也碰到这个问题,
看过后,受益匪浅,
谢谢啦!!
交叉编译opencv,解决不了这个错误,请大家帮忙!
由
beckham009 » 2010-04-02 17:08
我使用的编译工具是arm-none-linux-gnueabi-g++
想用opencv写个程序,放到devkit8000(omap3530芯片)开发板上。
在configure指令用的是下面这些
代码:
全选
./configure --host=arm-none-linux-gnueabi --without-gtk --without-carbon --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX= arm-none-linux-gnueabi -g++ CPPFLAGS=-I/usr/include --prefix=/opt/opencv-arm6
成功。
Make成功。
Makeinstall成功。
之后进行交叉编译我自己写的程序diejia2.cpp
代码:
全选
arm-none-linux-gnueabi-g++ diejia2.cpp -o diejia2 -I/opt/opencv-arm6/include/opencv -L/opt/opencv-arm6/lib -lcv -lcvaux -lcxcore -lhighgui -lml
出错,信息如下
代码:
全选
davinci@davinci-desktop:~/diejia$ arm-none-linux-gnueabi-g++ diejia2.cpp -o diejia2 -I/opt/opencv-arm6/include/opencv -L/opt/opencv-arm6/lib -lcv -lcvaux -lcxcore -lhighgui -lml /opt/opencv-arm6/lib/libhighgui.a(loadsave.o): In function `__static_initialization_and_destruction_0(int, int)': loadsave.cpp:(.text+0x1b0): undefined reference to `cvSetImageIOFunctions' /opt/opencv-arm6/lib/libhighgui.a(loadsave.o): In function `icvLoadImage(char const*, int, bool)': loadsave.cpp:(.text+0x34c): undefined reference to `cvError' loadsave.cpp:(.text+0x350): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x37c): undefined reference to `cvReleaseMat' loadsave.cpp:(.text+0x438): undefined reference to `cvCreateImage' loadsave.cpp:(.text+0x440): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x45c): undefined reference to `cvGetMat' loadsave.cpp:(.text+0x498): undefined reference to `cvReleaseMat' loadsave.cpp:(.text+0x4b4): undefined reference to `cvReleaseImage' loadsave.cpp:(.text+0x4e0): undefined reference to `cvCreateMat' loadsave.cpp:(.text+0x4e8): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x50c): undefined reference to `cvError' loadsave.cpp:(.text+0x558): undefined reference to `cvReleaseImage' loadsave.cpp:(.text+0x588): undefined reference to `cvError' /opt/opencv-arm6/lib/libhighgui.a(loadsave.o): In function `cvSaveImage': loadsave.cpp:(.text+0x600): undefined reference to `cvError' loadsave.cpp:(.text+0x608): undefined reference to `cvReleaseMat' loadsave.cpp:(.text+0x610): undefined reference to `cvReleaseMat' loadsave.cpp:(.text+0x614): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x634): undefined reference to `cvGetMat' loadsave.cpp:(.text+0x63c): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x69c): undefined reference to `cvError' loadsave.cpp:(.text+0x74c): undefined reference to `cvCreateMat' loadsave.cpp:(.text+0x754): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x770): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x7e4): undefined reference to `cvError' loadsave.cpp:(.text+0x7f8): undefined reference to `cvCreateMat' loadsave.cpp:(.text+0x800): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x818): undefined reference to `cvFlip' loadsave.cpp:(.text+0x81c): undefined reference to `cvGetErrStatus' loadsave.cpp:(.text+0x844): undefined reference to `cvError' loadsave.cpp:(.text+0x864): undefined reference to `cvError' loadsave.cpp:(.text+0x884): undefined reference to `cvError' loadsave.cpp:(.text+0x8a4): undefined reference to `cvError' loadsave.cpp:(.text+0x8c4): undefined reference to `cvError' /opt/opencv-arm6/lib/libhighgui.a(loadsave.o):loadsave.cpp:(.text+0x8e4): more undefined references to `cvError' follow /opt/opencv-arm6/lib/libhighgui.a(utils.o): In function `cvConvertImage': utils.cpp:(.text+0x10e4): undefined reference to `cvGetMat' utils.cpp:(.text+0x10ec): undefined reference to `cvGetErrStatus' utils.cpp:(.text+0x1108): undefined reference to `cvGetMat' utils.cpp:(.text+0x1110): undefined reference to `cvGetErrStatus' utils.cpp:(.text+0x1158): undefined reference to `cvError' utils.cpp:(.text+0x1290): undefined reference to `cvError' utils.cpp:(.text+0x1298): undefined reference to `cvReleaseMat' utils.cpp:(.text+0x12bc): undefined reference to `cvError' utils.cpp:(.text+0x12d0): undefined reference to `cvCreateMat' utils.cpp:(.text+0x1324): undefined reference to `cvConvertScale' utils.cpp:(.text+0x135c): undefined reference to `cvError' utils.cpp:(.text+0x137c): undefined reference to `cvError' utils.cpp:(.text+0x139c): undefined reference to `cvError' utils.cpp:(.text+0x17fc): undefined reference to `cvCopy' utils.cpp:(.text+0x1800): undefined reference to `cvGetErrStatus' utils.cpp:(.text+0x1824): undefined reference to `cvError' utils.cpp:(.text+0x1840): undefined reference to `cvFlip' utils.cpp:(.text+0x1844): undefined reference to `cvGetErrStatus' utils.cpp:(.text+0x1868): undefined reference to `cvError' collect2: ld returned 1 exit status
好像是highgui交叉编译出问题。
把diejia2.cpp注释掉里面的
代码:
全选
//ima=cvloadimage(“1.bmp”)
代码之后,没错了。生成了可执行文件。
但是没有cvloadimage怎么读取图像??肯定要有的。
在网上看到好多人说,交叉编译时gtk和highgui是会出问题的,我想只有两条路可以解决问题
1 想办法把highgui交叉编译通过,不知道大家有没有做成的,指教一下
2 不用highgui,有没有其他读图片的方法,初学望指教
beckham009
OpenCV幼儿园宝宝 帖子: 3注册: 2010-04-02 15:20
页首
Re: 交叉编译opencv,解决不了这个错误,请大家帮忙!
由
zouyiran » 2010-04-22 23:06
你离成功不远了~~~highgui的确有问题~~所以自己写采集接口吧~~·
至于loadimage~~~我给你三种方法吧~~
1)iplImage = cvCreateImageHeader(cvSize(width,heigth),IPL_DEPTH_8U,1);-
cvSetData(iplImage,pGrayBuffer,width*1); //第3个参数是行字节数
cvReleaseImageheader(&iplImage);
free(pGrayBuffer); //pGrayBuffer是程序里用来放灰度数据的空间,由calloc分配
(2)iplImage = cvCreateImage(cvSize(width,heigth),IPL_DEPTH_8U,1);
iplImage->imageData=pGrayBuffer;
iplImage->imageDataOrigin=pGrayBuffer;
cvReleaseImageheader(&iplImage);
free(pGrayBuffer);
(3) iplImage = cvCreateImage(cvSize(width,heigth),IPL_DEPTH_8U,1);
memcpy(iplImage->imageData,pGrayBuffer,iplImage->imageSize);
cvReleaseImage(&iplImage);
free(pGrayBuffer);
zouyiran
OpenCV小学生 帖子: 8注册: 2010-01-01 3:38
页首
Re: 交叉编译opencv,解决不了这个错误,请大家帮忙!
由
beckham009 » 2010-04-26 10:28
感谢楼上,非常感谢!!!
beckham009
OpenCV幼儿园宝宝 帖子: 3注册: 2010-04-02 15:20
页首
Re: 交叉编译opencv,解决不了这个错误,请大家帮忙!
由
catch » 2010-08-16 13:36
现在我也碰到这个问题,
看过后,受益匪浅,
谢谢啦!!
相关文章推荐
- cygwin下通过ndk交叉编译Android openCV 此博文包含图片
- 海思3515,交叉编译opencv2.4.9,个人经验分享,欢迎补充
- 交叉编译opencv
- Unbuntu16.04上用CMake图形界面交叉编译树莓派的OpenCV3.0
- 交叉编译OpenCV2.4.9
- 交叉编译opencv2.4.13出错:libzlib.a: error adding symbols: Bad value
- 【OpenCV】为树莓派(ARM)交叉编译OpenCV
- Linux下opencv的交叉编译
- zedboard------交叉编译opencv在linaro桌面运行的若干问题
- Ubuntu15.04交叉编译opencv到ARM全过程
- linux下opencv的交叉编译注意事项
- 利用arm开发板交叉编译opencv249错误汇总
- Ubuntu 16.04上用CMake图形界面交叉编译树莓派的OpenCV3.0
- 讯为iTOP4412开发板ARM-linux 交叉编译opencv
- opencv2.0移植过程中zlib,jpeg,png库的交叉编译
- ubuntu14.04上交叉编译opencv-2.4.9
- opencv交叉编译arm环境库,静态,动态库和可执行程序
- Opencv的交叉编译错误的修改
- Ubuntu 交叉编译openCV3.2 至s5pv210环境
- arm-linux-gnueabihf编译器在ubuntu环境下交叉编译opencv2.4.10