如何在自己项目中使用pcl

前提电脑已经下载编译安装了pcl

首先新建一个文件夹project,其中包含一个cpp文件:pcd_write.cpp。在同一文件夹中创建一个CMakeLists.txt文件。其中包含:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(MY_GRAND_PROJECT)
find_package(PCL 1.3 REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_LIBRARIES})

说明:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

强制性操作,cmake版本2.6

project(MY_GRAND_PROJECT) 

此行命名项目名字并且设置一些有用的cmake变量, 例如引用源目录(MY_GRAND_PROJECT_SOURCE_DIR) 和从中调用 cmake 的目录 (MY_GRAND_PROJECT_BINARY_DIR) 的变量。

 find_package(PCL 1.3 REQUIRED COMPONENTS common io)

要求找到最低版本为1.3的pcl包, REQUIRED 如果找不到,cmake 将失败。由于 PCL 是模块化的,因此可以要求:

  • 只有一个组件:find_package(PCL 1.3 REQUIRED COMPONENTS io)

  • 几个:find_package(PCL 1.3 REQUIRED COMPONENTS io common)

  • 所有现有组件:find_package(PCL 1.3 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

 找到pcl后,会设置几个相关变量:

  • PCL_FOUND:如果找到 PCL,则设置为 1,否则取消设置

  • PCL_INCLUDE_DIRS:设置为 PCL 安装头文件和依赖头文件的路径

  • PCL_LIBRARIES:设置为已构建和安装的 PCL 库的文件名

  • PCL_LIBRARY_DIRS:设置为 PCL 库和 3rd 方依赖项所在的路径

  • PCL_VERSION : 找到的 PCL 的版本

  • PCL_COMPONENTS:列出所有可用的组件

  • PCL_DEFINITIONS:列出所需的预处理器定义和编译器标志

要让 cmake 知道项目中包含的外部头文件,需要使用include_directories()宏。在我们的例子 PCL_INCLUDE_DIRS中,包含我们需要的内容,因此我们要求 cmake 搜索它包含的路径以查找可能包含的标头。

add_executable(pcd_write_test pcd_write.cpp)

 在这里,我们告诉 cmake 我们正在尝试pcd_write_test从一个单一的源文件中创建一个名为的可执行文件 pcd_write.cpp。CMake 将处理后缀(.exe在 Windows 平台上,在 UNIX 上为空白)和权限。

target_link_libraries(pcd_write_test ${PCL_LIBRARIES})

 我们正在构建的可执行文件调用 PCL 函数。到目前为止,我们只包含了 PCL 头文件,因此编译器知道我们正在调用的方法。我们还需要让链接器知道我们链接的库。如前所述,PCL 找到的库是使用PCL_LIBRARIES变量引用的,剩下的就是触发我们调用 target_link_libraries()宏的链接操作。PCLConfig.cmake 使用名为EXPORT的 CMake 特殊功能,它允许使用其他项目的目标,就像您自己构建它们一样。当您使用此类目标时,它们被称为导入目标,其行为与任何其他目标一样。

编译运行项目

创建名为build的文件,将在其中完成编译

$ cd /PATH/TO/MY/GRAND/PROJECT

$ mkdir build

$ cd build

$ cmake ..

构建我们的项目,只需键入:

$ make 

 该项目现在已编译、链接并准备好进行测试:

$ ./pcd_write_test

你可能感兴趣的:(pcl学习,c++,pcl)