CMakeLists.txt文件
参考PCL官网
CMakeLists.txt文件包含以下信息:
1、cmake_minimum_required(VERSION 2.6)
cmake是2.6版本的
2、下面信息中的t1,表示文件名
3、CMakeLists.txt文件是个模板,一般情况下,只需要更改cmake的版本信息和文件名t1
cmake_minimum_required(VERSION 2.6)
project(t1)
find_package(PCL 1.2 REQUIRED)
# 包含头文件目录
include_directories(${PCL_INCLUDE_DIRS})
# 设置依赖库链接目录
link_directories(${PCL_LIBRARY_DIRS})
#添加预处理器和编译器标记
add_definitions(${PCL_DEFINITIONS})
add_executable(t1 t1.cpp)
target_link_libraries (t1 ${PCL_LIBRARIES})
名为t1的.cpp文件
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main(int argc,char**argv)
{
// 创建点云
pcl::PointCloud<pcl::PointXYZ> cloud;
//对于无序点云,它将表示点云中点的个数
//对于有序点云,表示有序点云的一行点的总数
cloud.width=5;
//对于无序点云,它将被设置为1
//对于有序点云,表示有序点云的行的总数
cloud.height=1;
cloud.is_dense=false;//不存在无效点(NaN点)
//修改点云的大小
cloud.points.resize(cloud.width*cloud.height);
for(size_t i=0;i<cloud.points.size();++i)
{
cloud.points[i].x=1024*rand()/(RAND_MAX+1.0f);
cloud.points[i].y=1024*rand()/(RAND_MAX+1.0f);
cloud.points[i].z=1024*rand()/(RAND_MAX+1.0f);//随机生成点云
}
//以ASCII形式存储名为test_pcd的pcd文件
pcl::io::savePCDFileASCII("test_pcd.pcd",cloud);
std::cerr<<"Saved "<<cloud.points.size()<<" data points to test_pcd.pcd."<<std::endl;
//依次输出点云数据
for(size_t i=0;i<cloud.points.size();++i)
std::cerr<<" "<<cloud.points[i].x<<" "<<cloud.points[i].y<<" "<<cloud.points[i].z<<std::endl;
return(0);
}
在Ubuntu里是这样的
在编写完CMakeLists.txt和t1.cpp文件后,新建一个名为build的文件夹,然后在build里输入cmake … 和make,成功后输入./t1 以运行。