ubuntu环境配置eclipse+opencv

ubuntu环境配置eclipse+opencv

最近要利用OpenCV做开发,并且要在Linux环境下。想想自己一直用的Ubuntu是一个很不错的linux平台,安装快捷,解决问题方便(有社区)。而Eclipse又因为其强大的跨平台及开源特性,以及多编程语言环境的支持,所以Ubuntu+Eclipse 成为了多种组合里的首选。教程首先从Eclipse的安装开始:

  一. Eclipse + CDT 的搭建

  快捷键Ctrl + alt + T 召唤出终端运行

sudo apt-get install eclipse 

  自动下载安装eclipse 集成开发环境(包括JDK),不过默认只有java的环境,因为OpenCV都是基于C/C++语言的,所以我们还要安装CDT。打开Eclipse -> Help -> Install New Software, Work with 的右边输入

cdt - http://download.eclipse.org/tools/cdt/releases/indigo

(其中最左边的cdt是自己取的名字,可以随意改,但是后面那个URL一定要正确)截止今天,从源中得到的eclipseindigo版,所以我们CDT也要选择indigo版的,输入后稍等片刻pengding.....解析完毕得到下图,勾选CDT Main Features 就够了,然后一路点击Next.直至finish.

不一会功夫就自动安装好了,至此我们的eclipse里集成了C/C++的开发环境,即Eclipse + CDT 环境。

. G++ OpenCV的安装

  G++的安装同样很简单,快捷键Ctrl + alt + T 召唤出终端运行

sudo apt-get install g++

  OpenCV库的安装参考http://www.opencv.org.cn/index.php/Debian%E4%B8%8B%E5%AE%89%E8%A3%85中的方法,调试后发现只要这一句就够了

apt-get install libcv-dev libcvaux-dev libhighgui-dev

  此时头文件已经安装在/usr/include/opencv /usr/include/opencv2 (为什么要提这些呢?因为后面要用到!)

. Eclipse CDT OpenCV 双剑合璧

  这一部分参考 http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html 因为是英文版的,把它本土化,方便大家。

  1.同样快捷键Ctrl + alt + T 召唤出终端运行eclipse,召唤出拥有CDTeclipse.

  2. 依次打开 File -> New -> C/C++ Project(若没有,从project里找到c/c++) 如下图
  

     

  3.此时可以选择一个"Hello World"的工程,顺便取一个名字, 如我的"myfistopencv",点击finish.

  4.cpp中的代码替换为如下程序代码

1 #include <string>
2 #include <opencv2/opencv.hpp>
3 
4 using namespace cv;
5 using namespace std;
6 
7 int main()
8 {
9     string imagename = "lena.jpg";
10 
11     //读入图像
12     Mat img = imread(imagename);
13 
14     //如果读入图像失败
15     if(img.empty())
16     {
17         cout<<"read failed!";
18         return -1;
19     }
20     //创建窗口
21     namedWindow("image",1);
22 
23     //显示图像
24     imshow("image", img);
25 
26     //等待按键,按键盘任意键返回
27     waitKey();
28 
29     return 0;
30 }

  5.这个时候会报很多错,不要紧张,是因为eclipse还不知道includelibrary的位置,让我们告诉它。

  首先指明include:

  打开 Project–>PropertiesC/C++ Build, 点击 Settings. 选择右侧 Tool Settings 标签(默认). 这里我们可以看到includeslibrary的信息

  在 GCC C++ Compiler, 点击 Includes. 在 Include paths(-l) 添加我们的opencv的头文件所在地,即上文提到的 /usr/include/opencv 以及/usr/include/opencv2 /usr/include/opencv,如下图

  

 

  再指明lib :

  lib是要自己找的,依旧快捷键Ctrl + alt + T 召唤出终端,这次输入

pkg-config --libs opencv
-L/usr/local/lib -lopencv_cudabgsegm -lopencv_cudaobjdetect -lopencv_cudastereo -lopencv_shape -lopencv_stitching -lopencv_cudafeatures2d -lopencv_superres -lopencv_cudacodec -lopencv_videostab -lopencv_cudaoptflow -lopencv_cudalegacy -lopencv_calib3d -lopencv_features2d -lopencv_objdetect -lopencv_highgui -lopencv_videoio -lopencv_photo -lopencv_imgcodecs -lopencv_cudawarping -lopencv_cudaimgproc -lopencv_cudafilters -lopencv_video -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_cudaarithm -lopencv_core -lopencv_cudev

  会打印出所有的libs,应该是下面这些

  opencv_core;opencv_imgproc;opencv_highgui;opencv_imgcodecs

  你可以全部导入,以免找不到。

  找到 GCC C++ Linker在右侧 First in Library search path (-L) 中加入路径然后再加入这些库,如下图所示因为我已经加分号了,所以可以直接导入,eclipse 会自动换行分开,不然就要一个一个手动输入。



  

   OK,别忘了点apply!

  这时候可能有人会碰到Binary not found等问题,Hint: 首先要按ctrl+b build,再运行!就没有问题了!

  至此环境就搭起来了,试试运行sample,如果你没有lena.jpg的图的话,应该提示read failed,说明你的环境已经搭建成功了!是不是很快?





1 error in final launch sequence

提示信息:

Error in final launch sequence
Failed to execute MI command:
maintenance set python print-stack off
Error message from debugger back end:
Undefined maintenance set command: “python print-stack off”. Try “help maintenance set”.
Undefined maintenance set command: “python print-stack off”. Try “help maintenance set”.CDT
gdb不兼容。我的GDB是最新的,需要降低GDB版本,或者在run–>debug configurations 里点击apply左边的Select other…选择低版本,stand create
process launcher“

参考博文

2 debug– No source available

运行正常,但调试就出错。No source available for main **函数。先确保你的build的工程是debug,然后再确保project–>properties->c/c++ build->settings里的debugginglevel是否为-g /-g3.如果以上两个都OK的,那就查看GDB的版本是不是太低了,GCC如果为4.8以上,则GDB要新版本7.6以上才兼容。





posted @ 2017-09-26 11:49  qilibin  阅读(800)  评论(0编辑  收藏  举报