pcl 1.15.1点云库+VS2022+windows11安装配置

Source

2025最新,pcl 1.15.1点云库+VS2022+windows11安装配置

本篇文章来自【六合:3D视觉点云软件开发】实战项目的教程笔记。项目链接:六合:3D视觉点云软件开发实战项目-周旋机器视觉工作室

本篇文章讲解PCL点云库的安装配置,首先笔者时间是2025/10/12,此时PCL官方最新版本是1.15.1。

笔者系统是windows11系统,安装了Visual Studio 2022,以及QT5.14.2。

但是即便你不是这个环境也没有关系,本篇文章重要的是思想,只要你知其然也知其所以然,那就可以在任何环境任何版本下配置PCL点云库。

pcl官方网址:Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.

在官网主页的Downloads页面可以跳转到PCL库的github release页面,可以下载PCL的各个历史发布版本。本文下载安装PCL1.15.1。
在这里插入图片描述
在这里插入图片描述

在github页面我们一般直接选择下载PCL-1.15.1-AllInOne-msvc2022-win64.exe[1],这是官方提供的预编译包[2],你也可以下载SourceCode源码在自己本地PC上进行编译[3]。

[1]PCL-1.15.1-AllInOne-msvc2022-win64.exe是一个安装程序,双击它会启动安装,将PCL点云库安装到本地PC

[2]预编译包:我们知道PCL是一系列动态库dll,而动态库是由程序编译生成的,编译是依赖编译工具链的,编译工具链不同,会导致dll有所差异(其实是ABI有所差异)。

[3]自己编译SourceCode源码:在自己的环境编译对应的产物,就不会有版本对应问题了,如何编译源码我们就不展开了,可以在网上自行搜索。

PCL点云库版本对应问题

安装PCL有一个非常重要的版本对应问题,以PCL-1.15.1-AllInOne-msvc2022-win64这个官方预编译包为例,官方是基于msvc2022将PCL源码编译好提供给你,所以你本地写代码也应该使用msvc2022,也就是你需要安装VS2022版本或者更高版本。

msvc2022和Visual Studio 2022其实指的是一个东西,VS是一个集成IDE,包含了编辑、编译、链接、调试等等功能,而msvc就是编译工具链。

msvc2022这个名字可能会让人疑惑,你可以这样理解:它指代的是Visual Studio 2022所对应的msvc编译工具,也就是msvc v143版本。

那msvc2019呢,就是指Visual Studio 2019所对应的msvc编译工具,也就是msvc v142版本。

Visual Studio可以安装多个msvc版本,例如Visual Studio 2022可以安装msvc2022\msvc2019\msvc2017等等,这个在Visual Studio Installer中可以查看:
在这里插入图片描述

例如上图我的VS2022,就安装了MSVC V141(对应VS2017)、MSVC V142(对应VS2019)、MSVC V143(对应VS2022)。

所以我下载使用PCL-1.15.1-AllInOne-msvc2022-win64这个官方预编译包是没有问题的,因为我本地安装的就是msvc2022(其实这个叫法有点混淆,msvc2022其实就是指vs2022,也就是指代msvc v143)。

安装PCL

我们下载了PCL-1.15.1-AllInOne-msvc2022-win64.exe,双击运行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
按照步骤一步步的进行安装即可。
因为安装包是AllInOne,所以PCL库依赖的openNI2、VTK等等,全都会默认安装在你的电脑上。
在这里插入图片描述
PCL 1.15.1库安装目录结构如上图所示。

  • 3rdParty:里面包含了PCL库的第三方依赖库,如Boost、Eigen3、FLANN、OpenNI2、VTK等等。
  • bin:PCL库本质是一组动态库,均存于bin文件夹
  • include:是动态库,就有Include头文件目录
  • lib:静态库目录
  • cmake:cmake脚本,我们使用CMake链接PCL库时,CMake是如何找到我们本机安装的PCL呢?其实CMake就是在所有系统环境变量里面找一个PCLConfig.cmake的文件,找到这个文件就找到了PCL库。这个文件就是在本cmake文件夹中。而我们安装PCL库时会将PCL库路径注册到系统环境变量(如果你不注册Cmake就无法自动找到PCL库)
  • share:开源文档

验证PCL安装成功

我们如何验证PCL库安装成功呢?我们实现一个小的点云显示demo,这个demo使用pcl库读取本地的一个点云数据bunny.pcd,并将其显示出来:
在这里插入图片描述
这里要求你有一点基础,需要你有C++基础和Cmake基础,如果没有,去学习我的烛照课程第二章:烛照:机器视觉QT/C++软件开发全栈教程_哔哩哔哩_bilibili

我们创建两个文件,将这两个文件放到一个src文件夹中:
CMakeLists.txt:

project(Configuratio_Of_PCL_PointCloud_Library_In_VS)
cmake_minimum_required(VERSION 3.21)

#添加文件树
file(
	GLOB _SRCS
	*.cpp
	*.h
)
add_executable(${PROJECT_NAME})
target_sources(${PROJECT_NAME} PRIVATE ${_SRCS})

#查找PCL库并依赖
find_package(PCL REQUIRED)
#include
target_include_directories(${PROJECT_NAME} PUBLIC ${PCL_INCLUDE_DIRS})
#link
target_link_directories(${PROJECT_NAME} PUBLIC ${PCL_LIBRARY_DIRS})
target_link_libraries(${PROJECT_NAME} ${PCL_LIBRARIES})

main.cpp:

#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/pcd_io.h>

int main()
{
	//创建并读取点云
	pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
	pcl::io::loadPCDFile("..\\..\\data\\bunny.pcd", *cloud);

	pcl::visualization::CloudViewer viewer("Cloud Viewer");

	//渲染点云
	viewer.showCloud(cloud);

	// 保持窗口打开
	while (!viewer.wasStopped()) {
		// 可以在这里添加其他处理逻辑
	}
	return 0;
}

需要你自己手动修改一下pcd文件的路径。bunny.pcd这个文件直接去我们【六合:3D视觉点云软件开发实战项目】获取,项目链接:六合:3D视觉点云软件开发实战项目-周旋机器视觉工作室
使用CMake-GUI进行配置五步走:
在这里插入图片描述
会直接打开Visual Studio 2022,选中对应项目运行,项目无报错,即可运行成功。

问题解决

其实大部分情况下按照上面的步骤,你是会遇到问题的。

最常见的问题就是代码运行时,会报错找不到动态库。如果你对找不到动态库这类问题不知道如何解决,那一定要去学习我的烛照课程第二章动态库部分的适配:烛照:机器视觉QT/C++软件开发全栈教程_哔哩哔哩_bilibili,你要对动态库链接是原理和机制有深入理解,才可以自己去定位这些问题。

如果你运行代码,报错找不到PCL相关的动态库,例如找不到pcl_visualization.dll:
在这里插入图片描述

首先按照常理应该是开源找到这个dll的,因为我们将PCL库路径添加到了系统环境变量中了(安装时勾选对应选项,自动添加的),我们exe程序运行时会自动去所有系统环境变量中寻找需要的动态库,所以应该是可以自动找到的,如果依然报错,需要确认:

  1. 查看系统环境变量是否正确添加了PCL/bin文件路径
  2. 安装PCL库之后,重启电脑,确保系统环境变量生效

如果你运行代码,报错找不到OpenNI2.dll动态库,这也很正常,因为我们只添加PCL的系统环境变量,并没有添加openNI2库(PCL的一个第三方依赖库)的系统环境变量,所以我们的exe无法自动找到OpenNI2.dll动态库。
在这里插入图片描述

你有两种解决办法:
3. 将openNI2的路径添加到系统环境变量,一般是C:\Program Files\OpenNI2\Redist
4. 直接将C:\Program Files\OpenNI2\Redist目录下的OpenNI2.dll,拷贝到和你的exe同级目录