在开始有必要搞清楚一些基本的知识c++项目的知识,在c++ h文件和cpp文件中该写点什么。
假设有三个文件分别为circle.h,circle.cpp,main.cpp,那么circle.h中应该写类的声明,circle.cpp中添加#include <circle.h>然后写circle.h中未实现的函数,main.cpp则是通过#include <circle.h>调用circle。
.h叫做头文件,它是不能被编译的。“#include”叫做编译预处理指令,可以简单理解成,在circle.cpp中的#include"circle.h"指令把1.h中的代码在编译前添加到了circle.cpp的头部。每个.cpp文件会被编译,生成一个.obj文件,然后所有的.obj文件链接起来你的可执行程序就算生成了(这个是我之前没理解的)。
文章中有一个表格很清晰的介绍了h文件和cpp文件的一些区别:
打开VS2015创建项目mesh_lbo_vs2015,创建mesh_lbo.h头文件,如下:
#pragma once
#ifndef mesh_lbo
#define mesh_lbo
#include <vector>
#include <numeric>
#include <Eigen/Sparse>
#include <pcl/common/common_headers.h>
#include <pcl/PolygonMesh.h>
#include <pcl/conversions.h>
#endif // !mesh_lbo
然后配置了Eigen3,PCL点云库,其中在项目的属性——VC++目录——附加目录和库目录中分别放上Eigen3、pcl及组件include文件夹路径 和 pcl及组件的lib文件夹路径。这样就完成了Eigen3、pcl库的配置。