1、准备阶段

一、开发环境的准备

1、编程环境为ubuntu 14.04 64bit;

2、Opencv的安装

1)使用从源代码安装的模式, 安装的版本号为opencv-2.4.12,其下载地址为http://opencv.org/downloads.html

2)安装依赖项,如下

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

3)解压下载的OpenCV目录,然后进行编译和安装

mkdir build
cd build
cmake ..
make
sudo make install

安装后的头文件位置位于

安装后的库文件位于

备注:Linux下的c++编译工具抽象程度的递增,g++,makefile,cmake。

3、PCL(Point cloud library)的安装

由于深度相机采集的数据就是点云数据,PCL的官网地址为http://pointclouds.org;

针对14.04及以下的版本安装方式,需要私有源来安装(注意不同网络可能导致安装不同)

1 sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
2 sudo apt-get update
3 sudo apt-get install libpcl-all

由于在16.04当中,PCL库已经在公有源当中,采用直接安装

sudo apt-get install libpcl-dev pcl-tools

注意,在16.04当中PCL的配置似乎有bug,需要在cmakelist中添加一条指令修复。

头文件位于

库文件暂未找到??

二、编写一个测试程序

 首先,构建一个CMake项目,在Linux下的CMake项目通常由几个文件夹组成,如下

假设根文件夹是RGB-D_SLAM,

里面的子文件夹目录

bin目录:存放生成的二进制可执行程序;

src目录:源代码存放目录;

include目录:头文件存放目录;

lib目录:存放编译好的库文件目录;

有了以上目录,那么通过CMakeLists.txt文件把目录结构告诉cmake工程,因为cmake在生成代码时,会去读取这个文件,并按照它里面的格式来编译你的代码,所有要

touch CMakeLists.txt

并写入如下内容:

CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本
PROJECT( slam ) #设定工程名

SET(CMAKE_CXX_COMPILER "g++") #设定编译器
#设定可执行二进制文件的目录
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

#设定存放编译出来的库文件的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#把库文件目录作为连接目录
LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib) 
#设定头文件目录
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include )

#增加子文件夹,也就是进入源代码文件夹继续构建
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src )

备注:可以学习CMake实践电子书

注意库文件和二进制的区别和联系:二进制就是可以直接运行的程序啦,库文件呢,就是为这些二进制提供函数的啦。有main函数的代码可以编译成二进制,其他的则编译成库文件。链接时,把库文件链到二进制上,就可以运行。

下面实例联系:

在src目录下新建一个文件main.cpp

下面要把这个源代码生成一个二进制文件,则在src目录下新建一个文件CMakeLists.txt

然后,回到根目录下,执行如下操作

1 mkdir build
2 cd build
3 cmake ..
4 make

编译通过就会在bin目录下生成一个二进制文件。

这一课的主要目的就是为了熟悉Linux下CMake项目的建立,以及OpenCV和PCL环境的建立。

总结:

CMakeLists.txt文件,把可执行文件的生成放在src目录下

主函数要调用该库文件,需要新建一个头文件,然后在主函数文件里面通过#include来包含该头文件即可调用自己制作的库文件

原文地址:https://www.cnblogs.com/gary-guo/p/6537328.html