Windows PCL C++环境安装配置

【版权声明】
本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 

        本文主要介绍windows下PCL环境安装与配置,特别是用于vscode的C++工程。Python PCL环境安装与测试请参考《【python pcl】Windows 10 python pcl 安装与测试_windows 安装pclpy-CSDN博客》(https://blog.csdn.net/suiyingy/article/details/124932661)。

1 安装PCL库

        1.1 PCL下载

        PCL历史版本下载地址为Releases · PointCloudLibrary/pcl · GitHubhttps://github.com/PointCloudLibrary/pcl/releases/)。这里以1.9.1版本为例,下载地址为Release pcl-1.9.1 · PointCloudLibrary/pcl · GitHubhttps://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.9.1)。滚动到页面底部,选择适合系统的版本下载即可。例如,在页面底部分别下载PCL-1.9.1-AllInOne-msvc2017-win64.exe和pcl-1.9.1-pdb-msvc2017-win64.zip。

        1.2 安装步骤

        (1)双击打开PCL-1.9.1-AllInOne-msvc2017-win64.exe,按照提示进行安装即可。

        (2)安装中途会会弹出安装OpenNI 提示框,将安装路径选择为PCL路径下面的3rdParty文件夹。

        (3)等待安装完成即可,最终可能会提示环境变量设置失败,这个可以通过后续手动进行设置。环境变量在Path下添加如下路径,根据实际安装路径进行调整。如果环境变量未设置正确,那么在后续运行exe程序时可能会DLL缺失相关错误。

D:\PCL 1.9.1\bin
D:\PCL 1.9.1\3rdParty\VTK\bin
D:\PCL 1.9.1\3rdParty\OpenNI2\Redist
D:\PCL 1.9.1\3rdParty\FLANN\bin

        (4)将上面说的插件 pcl-1.9.1-pdb-msvc2017-win64.zip解压出来全部复制到你安装的PCL路径下(如D:\PCL 1.9.1\bin)。

2 示例程序

        下面是一个pcd点云文件读取程序,示例点云下载地址为https://download.csdn.net/download/suiyingy/85129456

'''
更多python与C++技巧、三维算法、深度学习算法总结、大模型请关注我的博客,欢迎讨论与交流:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。Python三维领域专业书籍推荐:《人工智能点云处理及深度学习算法》。
'''
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
using namespace std;

int main (int argc, char** argv)
{
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
  if (pcl::io::loadPCDFile<pcl::PointXYZ> ("../../rabbit.pcd", *cloud) == -1) //* 读入PCD文件
  {
    PCL_ERROR ("Couldn't read file example_cloud.pcd \n");
    return 0;
  }
  std::cout << "Loaded "
            << cloud->width * cloud->height
            << " data points from rabbit.pcd. "
            << std::endl;

  return 0;
}

3 程序运行

        vscode一般有三种运行方式,分别为task模式、cmake模式和CMake Tools,详细介绍请参考vscode ubuntu c++运行环境配置-CSDN博客https://blog.csdn.net/suiyingy/article/details/136540507)。这里以采用CMake Tools方式来运行,只需要配置CMakeLists.txt即可,内容如下:

cmake_minimum_required(VERSION 3.21)

project(01_readpcd)


set(CMAKE_BUILD_TYPE "Debug") 

# 设置PCL库的路径(假设PCL已经安装在系统中)
find_package(PCL 1.9 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

# 添加你的源文件
add_executable(${PROJECT_NAME} main.cpp)

# 将PCL的DLL文件拷贝到输出目录
# file(GLOB PCL_DLLS "${PCL_ROOT}/bin/*.dll")
# file(COPY ${PCL_DLLS} DESTINATION "${CMAKE_BINARY_DIR}/Debug")

message("PCL_DLL: " ${PCL_LIBRARY_DIRS})
message("PCL_DLL: " ${PCL_ROOT})
message("PCL_DLL: " ${PCL_LIBRARY_DIRS})

# 链接PCL库
target_link_libraries(${PROJECT_NAME} ${PCL_LIBRARIES})

        程序运行结果如下所示。

4 注意事项

        4.1 DLL缺失

        采用Cmake Tools运行程序时,如果缺少DLL。程序运行不会报错,但是会正常编译生成exe,并且程序不会输出任何结果。

        解决步骤:

(1)双击打开编译后的exe程序,会提示找不到的DLL文件。
(2)用搜索工具如everything(https://www.voidtools.com/zh-cn/)快速搜索电脑中相应DLL路径。
(3)将DLL路径添加到Path环境变量中。
(4)添加环境变量之后双击exe程序,看看是否还缺少其它DLL。
(5)环境变量设置好之后双击exe可以正常输出结果,但是vscode仍然无法输出,需要重启电脑,而重启vscode可能不会生效。

        4.2 无法找到PCL库

        使用Task模式运行程序时,我们会在c_cpp_properties.json文件中配置PCL库,示例如下所示。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/PCL 1.9.1/include/pcl-1.9",
                "D:/PCL 1.9.1/3rdParty/Eigen/eigen3",
                "D:/PCL 1.9.1/3rdParty/Boost/include/boost-1_68",
                "D:/PCL 1.9.1/3rdParty/FLANN/include",
                "D:/PCL 1.9.1/3rdParty/VTK/include/vtk-8.1",
                "D:/PCL 1.9.1/3rdParty/OpenNI2/Include",
                "D:/PCL 1.9.1/3rdParty/Qhull/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/msys64/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

        这个包含目录可以被vscode识别,但不能被编译环境gcc或g++识别,因此需要在tasks.json中通过args 来进行配置,并且还需要增加库包含目录。不借助cmake的情况下,单独用tasks.json比较难配置成功。这里不再进行介绍。

【版权声明】
本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。  

更多python与C++技巧、三维算法、深度学习算法总结、大模型请关注我的博客,欢迎讨论与交流:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。Python三维领域专业书籍推荐:《人工智能点云处理及深度学习算法》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding的叶子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值