eclipse-CDT 下 openCV 环境建立

  1. 软件环境安装
    首先按照《软件环境安装-全志A31S系统部署及驱动修改》安装好必要的软件环境。

  2. eclipse-CDT 软件安装
    可以直接采用“sudo apt-get install eclipse-cdt”安装eclipse-CDT。或者通过压缩包解压安装。

2.1 通过下载的软件包安装eclipse
将安装包“jre-8u66-linux-x64.gz”及“eclipse-cpp-mars-1-linux-gtk-x86_64.tar.gz”拷贝到需要安装的目录,解压。参考下载链接如下。本文安装的是x64版本的安装包。
http://www.java.com/en/download/manual.jsp
http://www.eclipse.org/downloads/packages/release/Neon/M4A
2.1.1 安装JRE环境
由于eclipse是用java实现的,所以在安装前先安装JRE。进入“jre-8u66-linux-x64.gz”目录,运行以下命令。
tarzxvfjre8u66linuxx64.gz sudo mkdir /usr/java
sudomvjre1.8.066/usr/java/ gedit ~/.bashrc
进入gedit环境后,修改配置如下(原内容不变,在后面添加红色部分):
export CLASSPATH=.: JAVAHOME/lib: JAVA_HOME/jre/lib
export JAVA_HOME=/usr/java/jre1.8.0_66
export PATH= PATH: JAVA_HOME/bin
eclipse-CDT 下 openCV 环境建立_第1张图片
设置好后执行如下命令使其修改生效。
$ source ~/.bashrc
至此,完成了JRE环境的安装。

2.1.2 安装eclipse
进入“eclipse-cpp-mars-1-linux-gtk-x86_64.tar.gz”目录,运行以下命令。
tar zxvf eclipse-cpp-mars-1-linux-gtk-x86_64.tar.gz
sudo ln -s /home/worker/program/eclipse/eclipse /usr/bin/eclipse #建立软连接
eclipse & #后台启动eclipse

  1. eclipse简单程序的本机及交叉编译环境配置
    通过本节的配置,使eclipse能够正确构建最简单的程序,本节目的在于学习eclipse工具的使用及eclipse交叉编译环境的配置。
    运行eclipse。设置workspace到解压的eclipse工程目录。
    eclipse-CDT 下 openCV 环境建立_第2张图片
    3.1 本机简单程序编译环境配置
    进入eclipse后,点击菜单栏File - New - C++ Project

eclipse-CDT 下 openCV 环境建立_第3张图片

eclipse-CDT 下 openCV 环境建立_第4张图片

eclipse-CDT 下 openCV 环境建立_第5张图片

eclipse-CDT 下 openCV 环境建立_第6张图片

eclipse-CDT 下 openCV 环境建立_第7张图片

eclipse-CDT 下 openCV 环境建立_第8张图片

eclipse-CDT 下 openCV 环境建立_第9张图片

至此,用eclipse构建本机运行的简单程序环境介绍完毕。

3.2 交叉编译简单程序编译环境配置
首先关闭前面的工程,防止在操作新工程时同时编译前面的工程。
eclipse-CDT 下 openCV 环境建立_第10张图片
建立新C++工程,按如下配置,选择交叉GCC编译器。
eclipse-CDT 下 openCV 环境建立_第11张图片
随便填一下。
eclipse-CDT 下 openCV 环境建立_第12张图片
建立好工程后,Build Project,得到相应构建模式下的可执行程序。但是程序为arm-linux平台的程序,需要将程序部署至arm-linux系统中运行。可以通过U盘等工具在arm-linux环境中运行。
eclipse-CDT 下 openCV 环境建立_第13张图片
至此,简单的ARM交叉编译环境配置完成。

3.3 在一个工程中同时包含arm构建配置及本地x64构建环境配置
以在已有的arm工程构建环境中加入x64本机构建配置为例,介绍如何在工程中引入另一个工程的构建配置。
首先同时打开x64-demo工程及arm-demo工程。
eclipse-CDT 下 openCV 环境建立_第14张图片
复制“arm-demo”工程,并更名为“x64-arm-demo”。新复制的工程的构建配置与被复制的工程一致。
eclipse-CDT 下 openCV 环境建立_第15张图片
在工程文件夹空白处右键单击,粘贴。粘贴复制后的新工程。
eclipse-CDT 下 openCV 环境建立_第16张图片
设置粘贴后的新工程名称。
eclipse-CDT 下 openCV 环境建立_第17张图片
这样完成了工程的复制。方法同样适用于配置好了第三方库依赖的文件路径及库路径配置的工程环境的复制。
eclipse-CDT 下 openCV 环境建立_第18张图片
为“x64-arm-demo”工程更改构建配置名称。将arm构建模式下的配置改名,改为带“arm”前缀的“arm-Debug”及“arm-Release”。
eclipse-CDT 下 openCV 环境建立_第19张图片
为“x64-arm-demo”工程加入新的构建配置,选择从其他工程导入配置,选择“x64-demo”工程的“Debug”配置。再用同样的方式设置“x64-Release”模式。
eclipse-CDT 下 openCV 环境建立_第20张图片
切换到新添加的“x64-Release”模式下重新构建工程。
eclipse-CDT 下 openCV 环境建立_第21张图片
虽然此时可以正确的编译工程,但是会出现在文件浏览器中的“include”目录中显示的路径列表显示混乱的情况。比如在原本的arm环境配置下,引入了x64的构建配置后,切换到“x64-Release”后编译工程,实际“include”显示的是“arm-Debug”的“include”路径配置。如下图所示现象。
eclipse-CDT 下 openCV 环境建立_第22张图片
实际上这与工程的“indexer”配置有关。“indexer”为源码预处理器用于代码输入提示时分析头文件引用定位,关键字等功能的路径设置。进入工程属性中修改“indexer”配置,使其与当前的“configuration”相对应。按照下图修改“C/C++ General - Indexer”的配置。
eclipse-CDT 下 openCV 环境建立_第23张图片
这样x64及arm的构建环境会使用自己的头文件路径设置。如下图所示。
eclipse-CDT 下 openCV 环境建立_第24张图片
至此,eclipse简单程序的本机及交叉编译环境配置方式介绍完毕。

  1. openCV及其他库环境的配置
    4.1 引用第三方库的方式
    引入第三方库时主要有几个方面的注意。分别是源码中加入头文件,头文件的引用目录,在工程配置中引入调用函数所在的第三方库名称,设置第三方库引用路径。其中第三方库的头文件无论是本机环境还是交叉编译环境是相同的,其只是定义了函数的参数形式及函数名。库因为是可执行的二进制代码,所以arm/x86/x64环境下调用的具体库不是相同的,但是其库的名称相同(由于都是同一套代码,只是利用了不同的编译器构建出来的)。
    注意事项 说明
    头文件 如 #include “opencv/core.h” ,在源码中用相对路径加入对特定头文件的引用,指明调用的第三方库的函数名称,参数及返回值类型形式。
    头文件路径 指明了在哪里能够搜索到如opencv/core.h 文件。(你如果不指定,那编译器去哪里找?)
    头文件的引用是在编译阶段就要使用的。
    这在Makefile中,是以“–I头文件路径”的编译器参数的形式指定的,
    在IDE中一般有专门的选项卡设置。
    库名称 指明了都调用了哪些具体的第三方库。
    库路径 定义了库路径后,去哪里搜索这些指定的第三方库?
    这些库路径指向自己安装好的第三方动态或静态链接库的位置。
    库名称中引入的所有库都要在这里指明找到他们的路径。
    X64的程序要指定到x64的库所在的路径;
    arm的程序要指定到arm的库所在的路径。
    这在Makefile中,是以“–L库文件路径”的链接器参数的形式指定的,
    在IDE中一般有专门的选项卡设置。

引入第三方库的一些基础概念参照如下网站。或自己搜一搜相关资料。
《Linux GCC常用命令:编译流程、第三方库使用及其加载》
http://blog.csdn.net/yanxiangtianji/article/details/20474155
《linux下将程序中用到的第三方库编译到自己的程序中》
http://blog.csdn.net/robertzhouxh/article/details/8268508
《Eclipse+CDT+Gcc编译选项控制》
http://www.linuxidc.com/Linux/2011-05/35448.htm


4.2 第三方库介绍
本项目中将调用的第三方库均放入了“share_library”文件夹中。主要包含opencv 2.4.9库,以及经过包装过可以直接调用的OCR光学文字识别库,均为静态库,在部署程序时不用再构建动态运行库环境。
其中“include”目录放置了所使用库的头文件,无论是在本机x64环境下,还是在目标ARM-linux环境下,头文件是相同的。在应用工程中引入相应的头文件后,将在本机实际部署的头文件目录加入即可。
其中“lib-ram”和“lib-x64”分别为ARM平台和本机平台下的程序库。包含了openCV库和OCR光学识别库。其目录组织形式如下图所示。在应用工程中引入相应的库后,将在本机实际部署的库搜索目录加入即可。
eclipse-CDT 下 openCV 环境建立_第25张图片
4.3 eclipse中第三方库引用方式的介绍
右击配置的工程-属性。
eclipse-CDT 下 openCV 环境建立_第26张图片
打开“C/C++ General – Path and Symbols”选项。该选项中,有如下图所示的多个选项卡。其中“Includes”选项卡用于设置头文件搜索路径,“Includes”内部又分为C/C++两种语言环境的头文件搜索路径设置。“Libraries”选项卡用于添加引用的第三方库名称。“Library Paths”用于设置当前构建配置查找库文件的搜索路径。
eclipse-CDT 下 openCV 环境建立_第27张图片

你可能感兴趣的:(Qt,opencv)