linux qt交叉编译opencv,linux下qt+opencv、arm端移植opencv

linux下qt+opencv、arm端移植opencv团队要做一个嵌入式定位的项目,arm端的工作进行一些图像采集、图像预处理,及多种通信接口管理、GUI显示、人机交互等工作。首先先把opencv移植来进行一些实验测试。本文记录下在linux下移植opencv及arm端移植的过程。qt的安装过程参考前面转载的一篇文章  http://blog.csdn.net/yuechuxuan/article/details/78216735一、Linux下移植opencv配合qt使用(1)首先更新源,sudo update sudo upgrade然后下载opencv编译过程中用到的一些包,搜索一下与opencv相关的有好多。这里我安装了其中的一些,sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-devpkg-config。下载cmake,cmake-qt-guisudo apt-get install cmake cmake-qt-gui(2)下载opencv包我是在opencv官网下载的opencv2.4.11 for linux。下载后解压进入,opencv-2.4.11目录下,执行cmake-gui点击Configure

3f288ee285423cc6e29fa526842ca321.png

Generate后进入 opencv-x86目录下 执make          make install 在/usr/local/lib下会出现编译好的lib文件。(3)安装完成后对系统变量进行配置sudo gedit /etc/ld.so.conf.d/opencv.conf在其中添加/usr/local/lib 保存后执行sudo ldconfigsudo gedit /etc/bash.bashrc在其中添加PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH

(4)测试运行一下在.pro文件中添加INCLUDEPATH+=/usr/local/include/usr/local/include/opencv/usr/local/include/opencv2LIBS += /usr/local/arm/libopencv_highgui.so /usr/local/arm/libopencv_core.so /usr/local/arm/libopencv_imgproc.so运行后结果出现一个框测试完毕,linux下qt+opencv搭建成功。二、 arm端移植opencv1.新建opencv-arm目录,进入opencv-2.4.9执行cmake-gui 2.点击Configure,保持unixmakefiles选项,选择specify options for corss-compiling来选择编译器路径3f288ee285423cc6e29fa526842ca321.png3.operating system填入os名,即编译器名arm-linux  os version这个可以不填,我不清楚这个填内核版本还是编译器版本,compilers C填入编译器arm-linux-gcc的elf路径,C++填入编译器arm-linux-g++的elf路径,target root是寻找lib和include文件的,这些文件都在arm-linux编译器文件路径下3f288ee285423cc6e29fa526842ca321.png4.去掉WITH_TIFF  WITH_CUDA,修改CMAKE_BUILD_TYPE为Release为要生成文件的路径,修改CMAKE_INSTALL_PREFIX,去掉WITH_OPENGL,修改CMAKE_FIND_ROOT_PATH为Linux安装库的路径3f288ee285423cc6e29fa526842ca321.png3f288ee285423cc6e29fa526842ca321.png3f288ee285423cc6e29fa526842ca321.png5.点击generate,进入到opencv-arm/CMakeCache.txt下找到CMAKE_EXE_LINKER_FLAGS:STRING='',CMAKE_EXE_LINKER_FLAGS原来为空,在该行添加-lpthread -lrt -ldl三个参数。3f288ee285423cc6e29fa526842ca321.png6.执行make make install三、出现的问题1.cmake-gui时出现error in configuration process ,project files may be invalid

3f288ee285423cc6e29fa526842ca321.png

查阅了好多资料终于解决了,在cmake-gui设置好然后configure的时候,刚刚开始就出现了这个错误,往前翻了一下具体的错误,发现有这么一项    make:arm-linux-g++:Command not found  命令找不到(忘记截图了),然后我又在终端里 输入 arm-linux-g++ -v   ,出现 no such file or directory , 此时问题终于找到了, 就是gcc和g++命令找不到,但是我已经交叉编译过了,环境变量也设置了,为什么还是找不到呢?最后终于发现是因为我的Linux系统是64位的,64位机与32位机不兼容,需要安装sudo apt-get install ia32-libs(这个只是网络版本),我输入sudo apt-get install ia32-libs时出现Package ia32-libs is not available, but is referred to by another package.This may mean that the package is missing, has been obsoleted, or

is only available from another source

However the following packages replace it:

lib32z1 lib32ncurses5 lib32bz2-1.0

E: Package 'ia32-libs' has no installation candidate所以我就输入 apt-get install lib32z1 ,同样解决了问题3f288ee285423cc6e29fa526842ca321.png3f288ee285423cc6e29fa526842ca321.png然后继续configure,如果还有错误,请参考下面的问题22.在configure的过程中出现CMake Error at cmake/FindCUDA.cmake:762(if):  if given arguments: "CUDA_VERSION""VERSION_GREATER" "5.0" "AND""CMAKE_CROSSCOMPILING" "AND"   "MATCHES" "arm""AND" "EXISTS""CUDA_TOOLKIT_ROOT_DIR-NOTFOUND/targets/armv7-linux-gnueabihf"   Unknown arguments specified  Call Stack (most recent call first):  cmake/OpenCVDetectCUDA.cmake:26(find_package)  cmake/OpenCVFindLibsPerf.cmake:24 (include)  CMakeLists.txt:423 (include)这个CUDA有问题,看看WITH_CUDA默认确实是选中的,在上面的框中去掉WITH_CUDA的√,继续configure

4.我第一次安装的版本是opencv3.8.0,但是把在make的过程中出现make[2]: *** [modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/drawing.cpp.obj] Error 1

make[1]: *** [modules/imgproc/CMakeFiles/opencv_imgproc.dir/all] Error 2

make: *** [all] Error 2

3f288ee285423cc6e29fa526842ca321.png

试了很多种方法也没有解决,最后觉得应该是opencv的版本太高了,动态库的链接有问题,也没有解决,不知道是什么原因,还是用低版本的吧!

另外还有一些用到的命令sudo apt-get install libxext-dev libxt-dev libxrender-dev libxdamage-dev libgl1-mesa-dev libglu1-mesa-dev libdbus-1-dev libgconf2-dev libicu-dev libedbus-devqt PC端安装完成后还要进行如下操作安装完成后一般还要修改一些配置。在命令行中输入:sudo vi  /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf打开default.conf文件,将第一行改为bin目录的路径,第二行改为qt5.8.0目录的路径。保存退出。

3f288ee285423cc6e29fa526842ca321.png

然后在命令行中输入:sudo apt-get install libgl1-mesa-dev安装 libgl1-mesa-dev

参考的文章http://blog.csdn.net/jd404647184/article/details/45745535http://blog.csdn.net/jakeo0o/article/details/54584199http://www.cnblogs.com/emouse/archive/2013/04/01/2993842.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值