PCL-Window下安装

2023-05-16

1. 安装编译工具链MSVC

MSVC工具链是visual studio 自带的工具链,因此安装visual studio社区版即安装完成相应的MSVC工具链

2. 安装Clion

相比与Visual studio的界面来说,更加熟悉以及习惯于Clion的界面以及UI体验。因此安装Clion。在完成Clion安装后,会自动检测MSVC构建工具链,打开file ->setting->build->toolchains 设置构建工具链。
在这里插入图片描述

请注意上述的红框一定要选择系统架构为x86_amd64位的系统,而不是32位的系统

3. 安装PCL库

在github上面,下载PCL的window安装包.
注意这个是直接可以安装的安装包,并且其构建链式msvc2022,64位的操作系统,与前文我们安装的构建链一致,并且和是64位操作系统。故下载本安装包,其他构建链请自行通过源码进行编译安装。
在这里插入图片描述
在安装的时候勾选选项,将PCL加入到环境变量中去。后续在安装完成后,记得重启电脑,保证动态链接库dll可以被链接到。

4. 构建项目

打开Clion编译软件,编写CMakeList.txt文件如下:

cmake_minimum_required(VERSION 3.24)
project(pcl_demo)
find_package(PCL REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable(pcl_demo main.cpp)
message(${PCL_LIBRARIES})
target_link_libraries (pcl_demo ${PCL_LIBRARIES})

上述构建脚本,设置相应cmake参数,以及项目名称,然后在系统中寻找PCL库,后续将库进行包含头,并且链接到PCL目录,最后在编译成可执行文件的时候,将PCL库进行链接到可执行文件中去。重新构建项目,如下所示,即PCL库已经被引入项目中去了:
在这里插入图片描述

5. demo程序

在main.cpp下编写如下代码:

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

#include <thread>
using namespace std::chrono_literals;

int main (int argc, char** argv)
{
   pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
   pcl::io::loadPCDFile("./../data/test_pcl_logo.pcd",*cloud);
   pcl::visualization::PCLVisualizer visualizer("view");
    visualizer.addPointCloud(cloud);
    while (!visualizer.wasStopped()){
	visualizer.spinOnce(100);
        std::this_thread::sleep_for(100ms);
    }
    cloud.reset();
  return 0;
}

在这里我们加载了一个PCD点云文件,并且展示出来。在这里要注意必须将openNI2.dll文件放到与编译后的文件同级目录下,否则会出现openNI2.dll找不知道的错误。最后运行程序,展示如下所示,即PCL在window下安装成功,并且引入代码中。
在这里插入图片描述

总结

C++的运行以及编译在window下进行确实有很多的坑要走,但是更多的是一些文件找不到,库找不到的问题,熟悉基本的构建规则,对这些可以慢慢探索而来

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCL-Window下安装 的相关文章

  • 在windows中如何定义可执行内存块?

    我知道Linux支持mmap能够定义可执行内存块的系统命令 在 Windows 中如何做同样的事情 我想也许有一些 Windows 等效函数可以做同样的事情 Call CreateFileMapping http msdn microsof
  • 带有标题栏和 Windows 任务栏的 Tkinter 窗口

    我已经广泛搜索这个问题 但似乎没有人知道 我在 python 2 7 中创建了一个简单的 tkinter 窗口 tcl 8 5 并希望它最大化 就像我点击右上角的最大化按钮一样 使用 fullscreenoption 不是一个选项 因为它删
  • 如何在 Mac OS 10.6+ 中使用 obj-c 切换到登录窗口

    我有一个应用程序 我需要以类似于此应用程序的方式切换到登录窗口 http itunes apple com us app lock me now id464265594 mt 12 http itunes apple com us app
  • CGWindowListCopyWindowInfo、kCGWindowLayer 和窗口级别

    The CGWindowLevel h文件定义了用于设置窗口级别的常量 可用作窗口级别的最大值为 20 但是 如果您使用以下调用检索窗口列表CGWindowListCopyWindowInfo 您可以观察到kCGWindowLayer大于
  • 启用 NoResize 模式时最小化窗口

    我有一个 WPF 应用程序 其中Window财产ResizeMode设置为NoResize 因此最大化和最小化按钮被隐藏 有没有办法添加最小化按钮 因为我不想允许用户仅调整窗口大小以避免表单上的控件变形 但最小化窗口是一个有用的功能 Set
  • 如何延迟 html 文本的显示,直到加载背景图像精灵?

    这是我想使用 jQuery 控制的一些示例代码 黑色页面背景上的白色按钮背景 ul class buttons li class button displays a href products Products and Services f
  • 如何在 Chrome 应用程序中显示 PDF 的数据 URI?

    我有一个从 JavaScript PDF 库 jsPDF 生成的数据 URI 似乎没问题 因为当我使用 console log 显示它并将其粘贴到浏览器 URL 字段时 它可以工作 但是 我无法让它在 Chrome 应用程序中显示 无论是在
  • 随着窗口大小的调整而向上移动图像或 Div?

    我的 html 中有一个带有 stretch 类的图像 目前 使用 css 该图像的大小会随着窗口大小的调整而调整为屏幕宽度的 100 我还希望它在调整窗口大小时向上移动 我假设这可以用 jQuery 来完成 但我不太确定 基本上 顶部 C
  • 如何在 bash 脚本中执行命令,然后聚焦出现的窗口

    我有一个像这样的 bash 脚本 bin sh firefox Firefox 窗口打开 但没有焦点 我该怎么做才能让它自动获得焦点 我可以使用一些 X 窗口工具 命令 但如何获取 Firefox 的窗口 ID 窗口名称随着显示的 URL
  • 如何获得两个具有不同绘图的窗口

    当我们有一个带有绘图的窗口时 有没有办法告诉 R 在新窗口中显示新绘图 plot 1 1 dev new plot 2 2 dev set dev prev go back to first title main test dev 1 de
  • 窗口调整大小指令

    我试图在窗口调整大小时调整 div 大小 环顾四周后 似乎使用指令是最好的解决方案 模板 div div 指示 myApp directive elheightresize window function window return lin
  • 子窗口关闭时如何运行父窗口的功能?

    我正在调用 javascript window open 函数来在弹出窗口中加载另一个网址 用户完成操作后 会将他们带到最后一页 其中有一个链接 其中显示调用 window close 函数的关闭窗口 现在 当该页面关闭时 我需要更新打开窗
  • 为什么我设置xlib窗口背景透明失败?

    我使用以下代码获得透明窗口 但它返回黑色 我出了什么问题 并且 任何人都可以给我一个简单的例子来创建具有透明背景的窗口吗 谢谢 include
  • 打开带有动态内容的窗口

    是否可以从 PHP 打开一个具有预定义内容的窗口 很明显 您可以从框架现有页面的 javascript 链接打开一个窗口 或者仅从引用现有页面的常规 a 标记执行 target blank 但我正在生成一些内容 并希望在新链接中打开该内容
  • 如何在 Pygame 中获取显示器的分辨率?

    我只是想知道我是否可以在 Pygame 中获取显示器的分辨率 然后使用这些尺寸创建一个窗口 以便启动程序检测显示器分辨率 然后自动将窗口适合全屏屏幕 我目前正在使用pygame display set mode AN INTEGER AN
  • createwindow(...)之后,如何给窗口赋予颜色?

    我创建了一个窗口 其句柄是handle parent 然后我创建了一个子窗口 如下所示 hwnd child CreateWindow child class name T WS CHILDWINDOW 0 0 0 0 hwnd paren
  • 来自静态资源的 Wpf 窗口标题

    我正在使用资源字典进行本地化 我在 wpf 中有以下代码
  • 如何在 C# WPF 中让主窗口等待新打开的窗口关闭?

    我是 WPF 和 C 的新手 请耐心等待 我有一个主窗口 它打开一个新窗口 现在这个新窗口是一个提示是否覆盖文件的提示 主窗口访问新窗口中的一个公共变量来检查提示的结果 但我无法让主窗口处理等到新窗口关闭 Window1 Win new W
  • 在新窗口中使用 jquery 显示从控制器返回的 PDF 流

    我有一个控制器操作 它读取 pdf从 azure blob 存储中读取文件并将流对象返回到 ajax method 控制器返回 var stream blobStorage OpenRead filepath await FileAsync
  • 如何正确处理在node-webkit中打开_blank窗口的链接?

    我正在尝试使用new win policy事件来处理打开新窗口的链接点击 https github com rogerwang node webkit wiki Window new win policy https github com

随机推荐

  • 3维空间中点、线、面之间的数学关系(python代码)

    1 面的定义 三维空间中的平面由两个量确定 xff1a 一个法向量 xff08 垂直于该平面的向量 xff09 一个已知点 xff08 位于该平面上的一个点 2 叉乘和点乘的区别 2 1叉乘的计算方式 xff0c 叉乘用来得到垂直于两条向量
  • 三维空间中,向量在另外一个向量或者面上的投影

    1 向量在另外一个向量上的投影 求向量u在向量v上的投影 定义为u xff0c 为两向量的夹角 一个向量有两个属性 xff0c 大小和方向首先明确向量点乘的含义 u v
  • C++编程02(引用、参数传递、内联函数)

    C 43 43 编程02 xff08 引用 参数传递方式 内联函数 xff09 引用 文章目录 C 43 43 编程02 xff08 引用 参数传递方式 内联函数 xff09 一 引用1 引用的实质2 引用必须初始化3 对数组建立引用 二
  • 使用Git bash查看之前版本和恢复最新版本的方法

    项目场景 xff1a 作为实习生 xff0c 一直在帮公司搞C 43 43 的图像识别项目 xff0c 因为总是改需求 xff0c 所以我的代码注释的一大片 xff0c 不便于整理 xff0c 有时候改的改的 xff0c 就找不到之前的版本
  • Windows平台下CMake使用报错No CMAKE_CXX_COMPILER could be found

    今天在笔记本建立了一个Cmakelists xff0c 使用cmake编译的时候 xff0c 报错 No CMAKE CXX COMPILER could be found No CMAKE C COMPILER could be foun
  • Cartographer编译方法及编译出错(glog库链接错误)解决方法

    最近在重新调试Carto代码 xff0c 想把自己的代码加入到Carto中 xff0c 原本想在IDE中调试 xff0c 然而Carto编译方式比较奇葩 xff08 catkin make isolated install use ninj
  • 什么是RTOS?RTOS与普通操作系统的区别

    一 xff1a 什么是RTOS RTOS Real Time Operating System xff0c 实时操作系统 实时性是其最大特征 xff0c 实时操作系统中都要包含一个实时任务调度器 xff0c 这个任务调度器与其它操作系统的最
  • 进度条(CSS)

    效果 xff08 实际有动态效果 xff09 html span class token tag span class token tag span class token punctuation lt span div span span
  • 终端命令行打开vscode

    在指定文件夹内 xff0c 使用终端命令行打开vscode 在当前目录打开vscode code 如果code命令无法使用 xff0c 需要配路径 xff0c 如下 xff1a 打开bash或者zsh配置文件 bash 用户请使用 vi b
  • 串口缓冲区管理分析

    一 概述 xff1a 串口使用时一般包含两个缓冲区 xff0c 即发送缓冲区和接收缓冲区 发送数据时 xff0c 先将数据存在发送缓冲区 xff0c 然后通过串口发送 xff1b 接收数据时 xff0c 先将接收的数据存在接收缓冲区 xff
  • array element has incomplete type

    http stackoverflow com search q 61 luaL reg 43 incomplete 43 type libs edje lua2 o edje lua2 c 183 error array type has
  • rt-thread学习记录(一)--内核的移植

    rt thread学习记录 xff08 一 xff09 内核的移植 1 基本选择 在rt thread官网上 xff0c 看到其对stm32芯片的支持 xff0c 因此选择stm32c8t6最小系统来进行移植内核 xff0c rt thre
  • rt-thread内核启动分析

    1 项目准备 上一节的基本环境 如rh thread 基本环境的搭建 硬件材料stm32f103C8T6 以及st link rt thread 内核启动官网分析 在分析rt thread代码的时候 由于rt thread的代码是十分优秀的
  • 达梦数据库sql语句记录

    登入 在ubuntu上安装好达梦数据 xff0c 并且生成实例 xff0c 在ubuntu上进行安装目录 xff0c 采用在tools目录下 xff0c 使用 disql进行命令行模式 xff0c 连接服务器 xff1a Conn sysd
  • vertx web开发(一)

    vertx web开发 最近在开发中 xff0c 由于spring 的大而全 xff0c 反而不实用于一下小项目 xff0c 因为spring boot在空载的情况 xff0c 至少其内存占用超过150M 而对于一些简单的项目反到不适用 而
  • kotlin协程实现原理

    传统runnable接口实现 在java中 xff0c 很多耗时的行为通过实现runnable接口 xff0c 并且通过线程运行下这些耗时的任务 xff0c 例如 xff1a span class token keyword public
  • PCL---RANSAC随机采样一致性算法

    前言 通过前面的文章 xff0c 我们基本上代建的相关环境 本文将继续基于此继续学习PCL相关采样一致性算法 基础代码下载 1 准备 1 1 Ransac算法介绍 RANSAC从样本中随机抽选出一个样本子集 xff0c 使用最小方差估计算法
  • PCL-使用potree可视化

    前言 在几篇文章中 xff0c 基本实现了对PCL相关操作 xff0c 最近在github上找到了Web端对点云数据可视化兼容很好的项目 Potree 对此本文将介绍如何使用Potree来进行web端的可视化 1 Potree 官方运行 P
  • PCL- Las文件处理

    前言 在对点云数据处理的时候 xff0c 很多时候激光雷达扫描的文件不一定是 pcd文件 xff0c 这个时候需要进行相关文件处理 xff0c 如Las xff0c laz e57等文件格式 xff0c 本文将介绍las文件的读写 1 引入
  • PCL-Window下安装

    1 安装编译工具链MSVC MSVC工具链是visual studio 自带的工具链 xff0c 因此安装visual studio社区版即安装完成相应的MSVC工具链 2 安装Clion 相比与Visual studio的界面来说 xff