Opencv交叉编译到ARM(基于Qt)
一、开发环境:
环境:ubuntu10.04
交叉编译工具:gcc version4.5.1(ctng-1.8.1-FA)友善的东西
opencv版本:OpenCV-2.3.1a.tar.bz2(这里可以下载:sourceforge/projects/opencvlibrary/files/)cmake:cmake version2.8.0()
*:前提是Qt交叉编译已经完成,并能正常使用。
一些依赖:在终端运行:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev
安装:cmake
apt-get install cmake-gui
apt-get install cmake
解压:
tar xvf OpenCV-2.3.1.tar.bz2
我使用的是天嵌提供的交叉编译工具EABI_4.3.3。安装在
/opt/EmbedSky/4.3.3/bin/目录下,
解压后,进入目录
cd OpenCV-2.3.1
运行:cmake-gui如果没有安装,系统会提示你安装
选择source file 选择build目录
点configure
然后选择:
next填路径:
Operating System:arm-none-linux
Compilers:
是交叉编译工具GCC与G++的目录,图中是我的目录Target Root:****
点Finish
然后再回到Cmake目录下:
在这里选择该先与不先的东西,同时因为我之前在x86上编译过
所以我把CMAKE_INSTALL_PREFIX改成:/usr/local/arm
同时添加了WITH_QT
因为添加WITH_QT_OPENGL时编译出错,所以后来去掉了。
同时修改QT_QMAKE_EXECUTABLE:/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin/qmake,不然后面会有asm错误
ubuntu vim命令
然后configure,再generate。。
进入/home/da/openCV/OpenCV-2.3.1-arm目录。
make
90%出现下面的错误:
/home/da/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h:In function'T cvflann::abs(T)[with T=long double]':
/home/da/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h:63:error:'fabsl'was not declared in this scope
make[2]:***[modules/flann/CMakeFiles/opencv_flann_pch_dephelp.dir/opencv_flann_pch_dephelp.obj] Error1
make[1]:***[modules/flann/CMakeFiles/opencv_flann_pch_dephelp.dir/all]Error2
make:***[all]Error2
解决方法:
修改vim/home/da/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.件第63行的源码:{return fabsl(x);}改为{return fabs(x);}
继续make
来源:<blog.csdn/top_dada/article/details/8183354>
​如果编译时出现如下错误
编译时发现如下错误:
Linking CXX executable../../bin/opencv_createsamples
../../lib/libcxcore.so:undefined reference to`clock_gettime'
../../lib/libcxcore.so:undefined reference to`pthread_key_create'
../../lib/libcxcore.so:undefined reference to`pthread_getspecific'
../../lib/libcxcore.so:undefined reference to`pthread_setspecific'
原因是cmake不认识我定义的arm-linux系统标记,没有加上库pthread和rt的链接选项此时需要修改,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread-lrt

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。