【PCL】Win10下使用VS2019、CMake配置PCL1.12.1
Win10下使用VS2019和CMake配置PCL1.12.1
安装
主要分为两步:
- 下载与安装
- OpenNI2的安装
下载与安装
下载地址:pcl1.12.1 Release
找到 PCL 1.12.1 我们需要下载两个文件,第一个文件是适配 VS2019 和 win64 的安装包,第二个是用于调试的工具包
下载好以后,双击 “PCL-1.12.1-AllInOne-msvc2019-win64.exe”
点击下一步:
点击我接受:
选择第二个,然后下一步:
这个添加环境变量只能添加部分环境变量,在安装过程中会提示添加失败,需要我们自己再手动添加一些环境变量
确认安装目录,最好不要设置为默认目录,设置好以后,点击下一步:
最好是全英文路径,并且最好不要空格
点击下一步:
点击安装:
安装过程:
提示添加环境变量失败,需要我们安装以后直接添加:
点击安装:(如果没有提示,可以忽略)
在安装过程中应该会弹出OpenNI2的安装,请将OpenNI2安装在下面的目录中:
E:\Environment\PCL1.12.1\3rdParty\OpenNI2\
如果没有弹出OpenNI2的安装画面,可以等PCL安装完成以后再安装
OpenNI2 安装
如果在安装过程中没有弹窗提示,可以在下面的目录中,找到OpenNI2的安装文件:
如果已经默认安装在了C盘,是不会弹出窗口的
如果没有弹出安装画面,大概率是因为电脑已经安装了该文件
我们需要将已经安装的OpenNI2卸载掉,卸载完再重新安装:
点击Remove:
点击Remove:
点击Finish:
如果你的电脑已经安装过类似的文件,那么就要像上面的步骤一样,把现有的文件删除掉
再次点击安装软件,并设置安装路径,最好是安装在下面这个目录:
# 方便我们配置环境以及寻找对应的文件
E:\Environment\PCL1.12.1\3rdParty\OpenNI2\
点击Finish:
pdb安装
安装 pdb 主要是为了可以使用调试功能
我们将下载的pdb压缩包(pcl-1.12.1-pdb-msvc2019-win64.zip)解压以后,得到下面的文件:
将这些文件复制粘贴到下面的路径:
E:\Environment\PCL1.12.1\bin
环境配置
网上有相关的很多博客,我这里总结的是已经踩过很多坑了的结果,可以按我的方式来配置,如果有问题,大家可以在评论区留言!
在安装的时候,我们选择**“Add PCL to the system PATH for all users”**,安装软件会自动帮我们配置下面的四个变量:
网上的一些配置方式是:
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\VTK\bin
%OPENNI2_REDIST64%
%OPENNI2_LIB64%
%OPENNI2_INCLUDE64%
但是这样的配置方式在生成可执行文件时,会出现很多问题,比如:缺少dll(参考本文最后的报错汇总)
此处最好使用绝对路径,不要使用%PCL_ROOT
这种方式,因为即使路径是对的,也会找不到dll文件,而使用绝对路径肯定能找到dll文件
打开环境变量设置,编辑Path:
添加以下内容:
E:\Environment\PCL1.12.1\bin
E:\Environment\PCL1.12.1\3rdParty\FLANN\bin
E:\Environment\PCL1.12.1\3rdParty\VTK\bin
E:\Environment\PCL1.12.1\3rdParty\Qhull\bin
E:\Environment\PCL1.12.1\3rdParty\OpenNI2\Tools
%OPENNI2_INCLUDE64%
%OPENNI2_REDIST64%
%OPENNI2_LIB64%
设置完以后,要重启一下电脑
CMake生成PCL项目
我们使用CMake来构建一个PCL项目,并测试是否可以使用PCL库
也可以配置VS的属性表,但那种方式比较麻烦,使用CMake比较方便
数据准备
可以在这个网站下载所需要的三维模型数据:https://sites.cc.gatech.edu/projects/large_models/
这里面有最经典的bunny,本文使用的是Horse.ply
源文件
CMakeLists.txt:
cmake_minimum_required(VERSION 3.15)
project(pcl_test)
find_package(PCL 1.12 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test main.cpp)
target_link_libraries(pcl_test ${PCL_LIBRARIES})
如果此处限制了PCL的版本为 1.12,会报“宏定义无效”错误,参考本文最后的解决方法
main.cpp:
#include <iostream>
#include <pcl/io/ply_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
int main()
{
std::string filePath = "E:/data/horse.ply";
pcl::PolygonMesh mesh;
pcl::io::loadPLYFile(filePath, mesh);
pcl::visualization::PCLVisualizer viewer("PLY Model Viewer");
viewer.addPolygonMesh(mesh, "mesh");
while (!viewer.wasStopped())
{
viewer.spinOnce();
}
return 0;
}
将上面两个文件存储在一个目录中,比如:pclCMake
打开CMake-GUI,设置如下:
点击 Configure,并点击Yes:
点击Finish:
出现下面的信息,代表已经Configure成功了:
点击Generate:
点击Open Project,将会打开VS2019
我们将pcl_test设为启动项目,然后生成解决方案,如果可以出现下面的画面,就代表我们的PCL安装成功!
报错汇总
主要遇到了两个错误:
- 宏定义无效报错
- 找不到 xxx.dll 报错
宏定义无效报错
报错信息:
这是因为我们在CMakeLists.txt中,将PCL的版本设置为了 1.12
解决办法:
在PCL安装目录下,找到下面的文件:
E:\Environment\PCL1.12.1\cmake\PCLConfig.cmake
打开该文件,并修改下面的内容:
替换成:
重新使用CMake编译,并运行解决方案:
找不到 xxx.dll 报错
通常可能遇到的报错是:无法找到 pcl_commond.dll 文件程序无法执行
还有可能遇到的报错是:
这种问题报错的原因是找不到PCL安装目录下的bin目录里面的文件:
E:\Environment\PCL1.12.1\bin
我当时是这样设置的:
%PCL_ROOT%PCL1.12.1\bin
按理来说找得到,但就是找不到,重启电脑也没用,无奈只能使用绝对路径。
使用绝对路径以后就不报错了,按我前文说的配置方式就不会报错。
MtN1N-1706513630867)]
更多推荐
所有评论(0)