当前位置: 首页 > news >正文

C++源码pcl1.13.0库编译环境搭建及配置

Pcl github库

https://github.com/PointCloudLibrary/pcl

官网地址

https://pointclouds.org/

Pcl exe的下载地址,各个版本,以及各版本对应的源码

https://github.com/PointCloudLibrary/pcl/releases

源码需要编译,编译之前安装AllInOne的exe程序(备注:对应的vtk是9.2版本)

拷贝对应的PDB压缩包解压后的PDB文件,到你PCL安装路径下的bin文件夹,本人路径C:\pcl13\PCL1.13.0\bin。就是里面有pcl开头的.dll文件的那个文件夹。

编辑系统变量Path

添加如下:

C:\pcl13\PCL1.13.0\bin;

C:\pcl13\PCL1.13.0\3rdParty\FLANN\bin;

C:\pcl13\PCL1.13.0\3rdParty\Qhull\bin;

C:\pcl13\PCL1.13.0\3rdParty\VTK\bin

C:\Program Files\OpenNI2\Tools;

上面配置完成后,点击pcl--bin下面的exe不报错就表示配置成功了

(备注:不配置的时候会报错误“xxxx.dll找不到”)

然后cmake编译pcl的源码,报下面的错误

CMake Error at E:/cmake-3.26.0-rc5-windows-x86_64/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Boost (missing: Boost_INCLUDE_DIR filesystem date_time
iostreams system) (Required is at least version "1.65.0")
Call Stack (most recent call first):
E:/cmake-3.26.0-rc5-windows-x86_64/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
E:/cmake-3.26.0-rc5-windows-x86_64/share/cmake-3.26/Modules/FindBoost.cmake:2377 (find_package_handle_standard_args)
cmake/pcl_find_boost.cmake:30 (find_package)
CMakeLists.txt:412 (include)

上面的错误需要指定一下eigen的路径见下图

需要加入3个entry

BOOST_ROOT

设定为:C:\Program Files\PCL1.13.0\3rdParty\Boost(此路径为PCL-1.13.0-AllInOne-msvc2022-win64.exe的安装路径)

BOOST_INCLUDEDIR

设定为:C:\Program Files\PCL1.13.0\3rdParty\Boost\include

BOOST_LIBRARYDIR

设定为:C:\Program Files\PCL1.13.0\3rdParty\Boost\lib

再次点击configure就可以过去了

上面没问题后,即可生成sln解决方案,用vs2022打开

点击解决方案“重新生成”然后“生成”

108>pcl_obj_rec_ransac_hash_table.vcxproj -> F:\pcl13sourcebuild\bin\pcl_obj_rec_ransac_hash_tabled.exe
108>已完成生成项目“pcl_obj_rec_ransac_hash_table.vcxproj”的操作。
113>------ 已启动全部重新生成: 项目: pcl_compute_cloud_error, 配置: Debug x64 ------
113>1>Building Custom Rule F:/pcl13source/pcl/tools/CMakeLists.txt
112>boundary_estimation.cpp
113>compute_cloud_error.cpp
109>pcl_obj_rec_ransac_accepted_hypotheses.vcxproj -> F:\pcl13sourcebuild\bin\pcl_obj_rec_ransac_accepted_hypothesesd.exe
109>已完成生成项目“pcl_obj_rec_ransac_accepted_hypotheses.vcxproj”的操作。
114>------ 已启动全部重新生成: 项目: pcl_add_gaussian_noise, 配置: Debug x64 ------
114>1>Building Custom Rule F:/pcl13source/pcl/tools/CMakeLists.txt
114>add_gaussian_noise.cpp
112>pcl_boundary_estimation.vcxproj -> F:\pcl13sourcebuild\bin\pcl_boundary_estimationd.exe
111>pcl_linemod_detection.vcxproj -> F:\pcl13sourcebuild\bin\pcl_linemod_detectiond.exe
113>pcl_compute_cloud_error.vcxproj -> F:\pcl13sourcebuild\bin\pcl_compute_cloud_errord.exe
114>pcl_add_gaussian_noise.vcxproj -> F:\pcl13sourcebuild\bin\pcl_add_gaussian_noised.exe
115>------ 已跳过全部重新生成: 项目: TOOLS_BUILD, 配置: Debug x64 ------
115>没有为此解决方案配置选中要生成的项目 
116>------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Debug x64 ------
116>1>Building Custom Rule F:/pcl13source/pcl/CMakeLists.txt
117>------ 已跳过全部重新生成: 项目: PACKAGE, 配置: Debug x64 ------
117>没有为此解决方案配置选中要生成的项目 
118>------ 已跳过全部重新生成: 项目: INSTALL, 配置: Debug x64 ------
118>没有为此解决方案配置选中要生成的项目 
========== “全部重新生成”: 114 成功,0 失败,4已跳过 ==========

得到的下面四个文件,就是编译c++文件时候需要引用的配置文件了

相关文章:

C++源码pcl1.13.0库编译环境搭建及配置

Pcl github库https://github.com/PointCloudLibrary/pcl官网地址https://pointclouds.org/Pcl exe的下载地址,各个版本,以及各版本对应的源码https://github.com/PointCloudLibrary/pcl/releases源码需要编译,编译之前安装AllInOne的exe程序&…...

Idea工具单工程使用卡顿设置

一、开启Idea内存占比指示 1.1、勾选Idea 内存指示器 1.2、右下角展示当前项目:内存/总内存(726/1024MB) ​​​​​​​ 二、修改Idea自定义内存 2.1、打开help - Edit Custom VM Options 2.2、自定义虚拟内存设置 -Xms1024m // 初始内存分…...

Android 9.0 Camera2退出时屏幕旋转为横屏

1.概述 在9.0的系统rom定制化中,由于是大屏幕产品,所以系统屏幕是默认横屏的,但是在Camera2是竖屏的app,所以会在进入Camera2相机时变成竖屏,退出相机时,还是竖屏, 对于横屏的机器来说不太符合要求,所以要求在退出相机时,旋转为横屏,这就需要知道哪个api监听Camera2 退…...

【云原生】rancher2.6部署MySQL—2023.03

文章目录概要1. 准备NFS服务器1.1 安装nfs1.2 创建挂载路径1.3 启动NFS服务2. 所有node节点上安装NFS服务3. rancher上部署MySQL3.1 创建PV3.2 创建PVC3.3 创建服务发现3.4 部署MySQL服务4. 测试概要 本文以单master节点为例,部署mysql,多master&#x…...

行测-判断推理-图形推理-样式规律-空间重构-立体拼合

有凸必有凹,排除A CD显然不对选BA和4能组成长方体B和3能组成长方体C和1能组成长方体选D这两个东西应该在同一侧,排除A C中间应该要由凸起,排除D选B图1向左旋转90图2逆时针旋转90选A...

细说蛮力法(一)

细说蛮力法(一)蛮力法百元买百鸡传统暴力枚举减少无用枚举最优解法蛮力法 蛮力法通常在算法题中经常用到,也称为暴力枚举,其核心为遍历,即通过列举所有可能的情况,从而得到合适的解。从人的思维角度来看&am…...

关于推荐系统的详细介绍

简介推荐系统是一种信息过滤系统,能够自动预测用户对特定产品或服务的偏好,并向其提供个性化的推荐。它通常基于用户的历史行为、个人喜好、兴趣和偏好等,通过数据挖掘和机器学习算法,在大数据的支持下生成个性化的推荐内容&#…...

leetCode刷题笔记

文章目录1. 把两个有序链表整合成一个新的有序列表2. 两数之和3. 有效括号的字符串1. 把两个有序链表整合成一个新的有序列表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 package com.example.demo.main.Domain; impo…...

数学小课堂:数学和哲学的互动关系(自洽的哲学思想受益于数学思维)

文章目录 引言I 数学是“有底”的学问(止于公理)II 数学对哲学的影响2.1 哲学思想受益于数学思维2.2 笛卡尔的贡献2.3 莱布尼茨的哲学思想III 哲学对数学的影响引言 数学和科学各个分支之间在方法上却具有相通性和普适性,这些通用的方法常常让很多学科同时受益,依靠数学逻…...

大聪明教你学Java | 带你了解 Redis 的三种集群模式

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言&#x1f4…...

Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)

编译时异常:在编译阶段,必须要手动处理,否则代码报错(提醒程序员检查本地信息) 运行时异常:在编译阶段是不需要处理的,是代码运行时出现的异常(代码出错而导致程序出现的问题&#…...

液氮恒温器概述

恒温器是直接或间接控制一个或多个热源和冷源来维持所要求的温度的一种装置。 恒温器要实现这种功能,就必须具有一个敏感元件和一个转换器,敏感元件量度出温度的变化,并对转换器产生所需的作用。转换器把来自敏感元件的作用转换成对改变温度…...

Shiro核心——Realm

RealmRealm的作用Realm的实现Realm的配置实例在Shiro中,Realm是一个非常灵活和强大的安全组件,它能够与各种数据源进行集成,满足各种安全需求。通过实现自定义的Realm,我们可以轻松地定制身份验证、授权和加密逻辑,实现…...

开发钉钉微应用,实现免登+调试

1.创建h5微应用 https://open.dingtalk.com/document/orgapp/develop-org-h5-micro-applications 根据里面的三个步骤,创建h5微应用 2.免登之前必须要先进行JSAPI的授权 文档说明: https://open.dingtalk.com/document/orgapp/jsapi-authentication 根据文档中的说明 步骤…...

0308java基础-注解,反射

一,注解 1.什么是注解: Annotation是从jdk5.0开始引入的新技术作用: 不是程序本身,可以对程序作出解释可以被其他程序读取格式: 以注释名在代码中存在,还可以添加一些参数值SuppressWarnings(value"…...

【鸿蒙应用ArkTS开发系列】- 页面跳转及传参

先看下效果图 大致实现的功能点: 从Indext页面跳转到Second页面,传递两个参数,一个字符串,一个数量;Second获取Index页面传递的数据;Second页面点击返回弹窗;Second页面返回携带参数数据&#…...

StringBuilder 类

Java StringBuilder类是一个可变字符串缓冲区,它提供了丰富的方法可以方便地进行字符串操作。与Java StringBuffer类类似,Java StringBuilder类的主要作用是优化字符串的拼接操作,提高代码的效率。在本篇文章中,我们将详细介绍Jav…...

kubectl-k8s用户切换

kubernetes默认使用$HOME/.kube/config配置文件。可以在配置文件中定义多个USER和Cluster的上下文。所以就有两种方式切换用户同一个config中,切换不同用户上下文切换不同的config配置文件同config切换不同用户上下文查看config文件kubeconfig config view查看当前上…...

【面试题】三道面试题让你掌握JavaScript中的执行上下文与作用域以及闭包

前言大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库大家好,笔者呢最近再回顾JavaScript知识时,又看到了JavaScript的一些较为常见的内容,仔细看了之后发现…...

计算机网络-- 应用层(day08)

计算机网络两种方式 网络应用程序运行再处于网络边缘的不同端系统上,通过彼此间的通信来共同完成某项任务。 开发一种新的网络应用首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系。 目前流行的主要有以下两种: 客户/服务器…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...