VS2017(win10)环境下配置PCL-1.9.1
PCL-1.9.1
下载
安装
- 下载完成后,双击进行安装,自定义目标文件的位置,我直接安装到了D盘下,并默认选择上所有的第三方库;。
- 将OpenNI2安装在PCL的第三方库文件夹中。
- 查看系统路径是否包含了PCL库:控制面板->系统->高级系统设置->环境变量。
PCL的安装过程结束。
VS2017配置PCL-1.9.1
打开VS2017,新建一个空项目。想要实现一次配置,以后的项目都可以正常使用PCL,就要在属性管理器中对项目进行配置。我使用的是PCL-1.9.1的win32的debug模式,所以需要在下图位置3中进行配置。
-
根据安装目录,设置VC++目录中的包含目录和库目录。
-
设置链接器中的附加依赖项,也就是添加需要的静态库。
根据自己PCL版本,将所有的*.lib文件放到链接器附加依赖项中,下图为部分文件,完整的PCL-1.9.1的dubug模式的lib文件在pcl-1.9.1-debug(提取码:8fx4)中。
-
对配置的PCL进行测试
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main(int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ> cloud;
// create a point cloud
cloud.width = 5;
cloud.height = 1;
cloud.is_dense = false;
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);
}
pcl::io::savePCDFileASCII("test_pcl.pcd", cloud);
std::cerr << "Saved " << cloud.points.size() << " data points to test_pcl.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;
}
system("pause");
return (0);
}
系统运行结果如下,表明VS2017环境下PCL配置成功。
PCL运行时可能发生的错误
- 使用VTK进行点云显示发生的错误。
Generic Warning: In c:\vtk-8.1.2\rendering\core\vtkpolydatamapper.cxx,line 28 Error:no override found for 'vtkPolyDataMapper'.
解决方法:
//在使用vtk之前,添加如下代码:
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL);
VTK_MODULE_INIT(vtkInteractionStyle);
- 无法解析的外部符号
该错误属于链接错误1,在程序运行时找不到源文件,需要在链接器附加依赖项中添加对应的库文件。
vtkRenderingOpenGL-8.1-gd.lib(vtkWin32OpenGLRenderWindow.obj):error LNK2019:无法解析的外部符号
解决方法:
在属性管理器->链接器的附加依赖项中添加opengl32.lib