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

Ubuntu18.04 下PCL的卸载与安装

目录

一、卸载有问题的PCL1.7

二、编译&&安装PCL1.8.1

2.1、安装PCL依赖

2.2、编译VTK

2.3、编译PCL源码

三、 总结


        

        写这篇博客时,本文方法已经在笔记本Ubuntu和VM虚拟机成功安装PCL1.8.1,并且通过测试。 下文方法同样适用于ubuntu18.04通过以下命令可以快速安装pcl1.7.1,但是不推荐,因为在ubuntu16.04中,由于vtk版本原因造成一些bug,这里不想深究,所以,打算自己编译。

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update# for ubuntu 16.04
sudo apt-get install libpcl-dev # for ubuntu 14.04
#sudo apt-get install libpcl-all 

一、卸载有问题的PCL1.7

sudo rm -r build
sudo rm -r /usr/include/pcl-1.7 /usr/share/pcl /usr/bin/pcl* /usr/lib/libpcl*

执行上述命令, 上述四个目录中,可能会找不到某些目录。可以自己去 usr 目录下搜索 关键字 pcl 或者 libpcl。本人在目录 /usr/libx86_64-linux-gnu 下找到 相关libpcl*文件,删除即可,删除命令同上。

二、编译&&安装PCL1.8.1

pcl的可视化库版本关系【你要是不知道其他版本的对应的vtk版本,推荐可以去下载pcl源码,去 3rdparty文件夹路径下查询vtk版本】:

-> pcl-1.7.2  vtk-5.10.1 / vtk-6.2.0
​-> pcl-1.8.1  vtk-7.1.1
-> pcl-1.9.1  vtk-8.2.0(建议8.1)

这让人想起非线性优化库 G2O 安装时,不同版本的G2O也需要不同版本的 libqglviewer类似。本文安装PCL1.8.1,所以选择VTK-7.1.1。在此之前先执行以下命令安装 PCL底层依赖(逐行执行)。PCL依赖的库很多,例如:QHull(查找凸包算法)、VTK(可视化)、Flann(最近邻搜索算法)、Eigen、Boost、OpenNI2(这个库可以提供当年一些供应商提供的设备的驱动,例如:Kinect2.0...为什么是当年? 首先OpenNI2 在N年前已经停止维护,PCL提供接口的一些设备如:深度相机也已经停产,所以...鸡肋);PCL本身提供的三维视觉算法不算很多,顺便:PCL这个库体验跟opencv等开源库比起来...,或许以后会去学习CloudCompare开源算法。

2.1、安装PCL依赖

sudo apt-get updatesudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev libboost-all-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install libopenni-dev libopenni2-dev
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev
sudo apt-get install libxmu-dev libxmuu-dev
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev

注意:这里 libopenni2-dev 也许会显示无法安装,换一个软件源就行了,我是换到aliyun了。

VTK7.1.1下载链接:https://www.jianshu.com/go-wild?ac=2&url=https%3A%2F%2Fwww.vtk.org%2Ffiles%2Frelease%2F7.1%2FVTK-7.1.1.zip

PCL1.8.1下载链接:https://codeload.github.com/PointCloudLibrary/pcl/zip/pcl-1.8.1

如果出现以下错误:

note: in the ubuntu18.04,we can not find the libflann1.8!!! ,

解决办法:

but i have found the "libflann1.9"by  using the conmad"apt-cache search libflann", and just install it, ojbk!!!

2.2、编译VTK

cd VTK-7.1.1
mkdir build && cd build
cmake ..
cmake-gui      ###操作见下面文字###
make
sudo make install

勾选“VTK_GROUP_QT”,改“VTK_QT_VERSION” = 5,将CMAKE_BUILD_TYPE 改为Release(图中还没改,懒得换图,图也是盗的,见文末链接),点击Configure,generate【最后一次config应该是所有红色部分消失】

很不幸,在虚拟机中用cmake-gui配置Qt版本时候报错(这跟虚拟机没什么关系,可能原因是Qt版本),如下图:

这里起初的想法是,更换一个Qt版本?太麻烦。既然缺少某个Qt库,可以使用如下指令搜索:

# 这条指令价值500块apt-cache search Qt5X11Extras# 显示结果如下
libqt5x11extras5 - Qt 5 X11 extras
libqt5x11extras5-dev - Qt 5 X11 extras development files# 这里安装其中一个库
sudo apt-get install libqt5x11extras5-dev

接着对于VTK,我们关闭并重新打开cmake-gui,重新生成,顺利生成, 别忘记sudo make install 。还可能在cmake-gui的时候,遇到无法找到  Qt5_DIR-NOTFOUND  。由于没有安装,所以这里要提前安装好Qt5。我这里选择Qt5.9.9,装完以后,还是不能自动检测到Qt路径,手动添加吧,如下图:

 点击configure,直到红色消失,然后点击Generate。

2.3、编译PCL源码

  接着解压、编译、安装PCL

cd pcl-1.8.1
mkdir build && cd build
cmake ..
cmake-gui      ###操作见下面文字###
make -j4         ###编译要好久,别开太多东西,小心卡机###
sudo make install

检查Qt5的路径,检查vtk版本,选择openni2,点击Configure,generate

注意:在安装PCL的时候,看清楚...,不要直接用命令行 cmake... 这样会直接默认生成releasse,我们这在cmake-gui中手动设置,如图,

debug和release版本各有自己的优势和缺陷。 debug版本为了追求更全面的调试信息而放弃了速度; release版本为了追求性能优化而抛弃了调试信息。如果用户既需要调试代码,又无奈于debug版本的速度,那么你便可以开始考虑RelWithDebInfo这个版本了。顾名思义,从这个模式的名称来看,它是一种含有调试信息的Release版本。那么它相当于是结合了Debug和Release版本的优点的一个版本。以下是Stackoverflow上面的关于比较Debug和RelWithDebInfo版本区别的描述: http://stackoverflow.com/questions/1239845/build-mode-relwithdebinfo

        本人在ubuntu下用的IDE为Clion,我们这里重新编译并安装好PCL之后,在clion->File->Setting->ToolChains 中首先将调试器改为 GDB(这个很关键,这样让本来就很卡的Clion在调试的时候,速度变换了许多,)继续再将CMake的build type改为RelWithDebInfo,编译速度也加快了。以上..., 否则使用CLion调试PCL中的的 pcl::PointXYZ 类型变量,很痛苦。

三、 总结

1、上面安装VTK可视化库,记得改为Release。

2、安装PCL的时候,如果不知道命令行怎么设置为:按RelWithDebInfo方式编译,可以用cmake-gui设置为这种方式,

3、CLion将工具链的调试器设置为GDB,将CMake的生成类型设置为RelWithDebInfo(缓解卡B带来的痛苦...)

4、由于从PCL1.7.1更换PCL1.8.1版本,之前基于CLion构建的工程全部作废,新建工程再写吧(理论上将 相对目录下的生成的中间文件手动rm 掉是可以的,懒得折腾,索性重建工程)

相关文章:

Ubuntu18.04 下PCL的卸载与安装

目录 一、卸载有问题的PCL1.7 二、编译&&安装PCL1.8.1 2.1、安装PCL依赖 2.2、编译VTK 2.3、编译PCL源码 三、 总结 写这篇博客时,本文方法已经在笔记本Ubuntu和VM虚拟机成功安装PCL1.8.1,并且通过测试。 下文方法同样适用于ubuntu18.04。…...

SMTP邮件发送图片-如何在github中存储图片并访问

之前写了一篇文章 Go:实现SMTP邮件发送订阅功能(包含163邮箱、163企业邮箱、谷歌gmail邮箱),实现了通过邮箱服务来发送邮件,但都是文字内容,要是想实现邮件发送图片,就需要将图片放到公网可访问…...

2023年软件系统架构师论文【回忆版】

2023年11月5日,全国计算机等级下半年考试,北京市软件架构师考试其中有个考点在首都经济贸易大学丰台校区),地址:北京市丰台区花乡张家路口121号(北门入校) 注意:机考的考试时间有所变…...

【使用python实现文件视频格式的转换】

1.视频格式转换有哪些常用方法? 视频格式转换的常用方法有以下几种: 使用专业的视频转换软件:这些软件可以支持多种视频格式之间的转换,如Adobe Premiere Pro、Final Cut Pro等。使用在线视频转换工具:有许多在线视频…...

新媒体运营的营销方案

一、目标客户群体 新媒体运营是通过社交媒体、短视频、直播等方式将信息快速传播出去,因此,适合的目标客户群体应该是年轻人群体,包括大学生、职场青年、年轻家庭等。 二、营销策略 1、社交媒体营销策略 借助社交媒体平台,建立企…...

Flutter 05 组件状态、生命周期、数据传递(共享)、Key

一、Android界面渲染流程UI树与FlutterUI树的设计思路对比 二、Widget组件生命周期详解 1、Widget组件生命周期 和其他的视图框架比如android的Activity一样,flutter中的视图Widget也存在生命周期,生命周期的回调函数体现在了State上面。组件State的生命…...

2.Vue3项目(二):vue项目创建,项目必需的基础依赖配置,项目集成各种第三方依赖

目录 一、环境配置 1.下载node.js 2.pnpm的配置 二、创建项目 1.先创建好项目文件夹...

【Mybatis源码】注册器 - TypeAliasRegistry

Mybatis中使用TypeAliasRegistry注册器用于管理类型与别名,Mybatis中许多功能的实现都需要从TypeAliasRegistry注册器中找到别名对应的类型,本篇我们介绍一下TypeAliasRegistry注册器的原理与使用 一、构造方法 TypeAliasRegistry注册器类提供了一个无参数的构造方法用于创…...

【wp】2023鹏城杯初赛 Web web1(反序列化漏洞)

考点&#xff1a; 常规的PHP反序列化漏洞双写绕过waf 签到题 源码&#xff1a; <?php show_source(__FILE__); error_reporting(0); class Hacker{private $exp;private $cmd;public function __toString(){call_user_func(system, "cat /flag");} }class A {p…...

三顾茅庐,七面阿里,成功上岸25k16薪,我行你也行~

写在片头&#xff1a;声明&#xff0c;勿杠 首先简单说一下&#xff0c;这三次面试阿里并不是一次性去面的&#xff0c;实际上第一次面试时候还在大四&#xff0c;找的实习岗&#xff0c;不太清楚是什么部门&#xff0c;别问我为什么还记得面试题&#xff0c;有记录和复盘的习…...

儿童听力损伤了,家长怎么办?

很多家长对儿童听力损伤问题存在较大误区&#xff0c;认为儿童除了先天性耳聋以外不会有听力问题。家长总认为孩子上课或做事不专心是因为注意力不集中、多动等问题所致&#xff0c;大部分家长没有意识到孩子可能出现了听力损伤问题。 儿童听力损伤主要是指因各种原因导致双耳不…...

【实验记录】为了混毕业·读读论文叭

PR曲线 1. Robust_Place_Recognition_using_an_Imaging_Lidar 在第三节方法中&#xff0c;提到了一些列处理步骤&#xff0c;分析来与vins相似&#xff0c;在vins中是关键帧检索、特征提取、DBoW查询、描述子匹配、PnP RANSAC求解。 第四节的实验部分&#xff0c;没有绘制pr…...

asr翱捷LORA系列芯片选型参考推荐ASR6601/asr6505/asr6501/asr6500

ASR6601 SoC是国内首颗支持LoRa的LPWAN SoC。ASR6601芯片中集成的超低功耗收发机&#xff0c;除了支持LoRa调制方式外&#xff0c;还可以支持FSK收发、MSK收发和BPSK发射等。在3.3V电源供电的情况下&#xff0c;通过高功率PA&#xff0c;最大可发射22dBM的输出功率。ASR6601与A…...

Prometheus+Node_exporter+Grafana实现监控主机

PrometheusNode_exporterGrafana实现监控主机 如果没有安装相关的配置&#xff0c;首先要进行安装配置&#xff0c;环境是基于Linux&#xff0c;虚拟机的相关环境配置在文末给出&#xff0c;现在先讲解PrometheusNode_exporterGrafana的安装和使用。 一.Prometheus安装 虽然…...

odoo启动-加载模块(load_modules)

odoo启动-加载模块&#xff08;load_modules&#xff09; odoo每次启动的时候都会加载模块&#xff0c;加载模块的过程就是调用load_modules 函数 在函数位于 odoo\modules\loading.py 代码中注释也写的很清楚&#xff0c;共分了9个步骤&#xff0c;其实是8个步骤。 这个函…...

【入门Flink】- 02Flink经典案例-WordCount

WordCount 需求&#xff1a;统计一段文字中&#xff0c;每个单词出现的频次 添加依赖 <properties><flink.version>1.17.0</flink.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><…...

go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台

go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台 1、直接打印到控制台 从 golang 应用程序中执行 bash 命令&#xff0c;现在 stdout 和 stderr 直接进入控制台&#xff1a; cmd.Stdout os.Stdout cmd.Stderr os.Stderrpackage mainimport ("fmt"…...

OpenGL ES入门教程(二)之绘制一个平面桌子

OpenGL ES入门教程&#xff08;二&#xff09;之绘制一个平面桌子 前言0. OpenGL绘制图形的整体框架概述1. 定义顶点2. 定义着色器3. 加载着色器4. 编译着色器5. 将着色器链接为OpenGL程序对象6. 将着色器需要的数据与拷贝到本地的数组相关联7. 在屏幕上绘制图形8. 让桌子有边框…...

el-select 搜索无选项时 请求接口添加输入的值

el-select 搜索无选项时 请求接口添加输入的值 <template><div class"flex"><el-select class"w250" v-model"state.brand.id" placeholder"请选择" clearable filterable :filter-method"handleQu…...

基于单片机的商场防盗防火系统设计

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、系统分析二、系统总设计2.1基于单片机的商场防火防盗系统的总体功能2.2系统的组成 三 软件设计4.1软件设计思路4.2软件的实现4.2.1主控模块实物 四、 结论五、 文章目录 概要 本课题设计一种商场防火防盗报警…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...