Ubuntu编译 PCL 1.13.1 详细流程

Ubuntu编译 PCL 1.13. 详细流程

  • 一、编译环境
  • 二、虚拟机准备
    • 1. 虚拟机扩容
    • 2. 配置交换分区
  • 三、Cmake - gui 生成 MakeFile
    • 1. 解决 flann 依赖问题
    • 2. 配置 Cmake
  • 四、编译安装
    • 1.编译:
    • 2. 安装

一、编译环境

Ubuntu:Ubuntu 20.04
VMware:VMware® Workstation 16 Pro
Cmake:Cmake 3.16.3 - gui
PCL:PCL 1.31.1

二、虚拟机准备

1. 虚拟机扩容

在实际使用过程中,因为PCL 编译需要很多 资源,特别是内存资源,需要很多,我之前给的虚拟机空间是

内存:8G
交换空间:1G

后面因为多次的内存使用完毕导致虚拟机卡死。

建议将内存根据自己的主机资源适当的改大些。

交换空间务必给大点,我之前从 5G - 10G - 15G 到最后的20G才不卡的。
在这里插入图片描述
因为交换空间实际上是用的硬盘资源。所以在虚拟机配置的时候 务必把 磁盘资源改大些

在这里插入图片描述

2. 配置交换分区

参考这个博主的操作
https://blog.csdn.net/AlexWang30/article/details/90341172

下面是我使用的分区命令,给的是 20G大小

sudo swapon --show
sudo swapoff -a
sudo fallocate -l 20G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

三、Cmake - gui 生成 MakeFile

1. 解决 flann 依赖问题

有可能会报 缺少那个 flann的错误,安装即可

apt search flann
sudo apt install libflann-dev

在这里插入图片描述

2. 配置 Cmake

在这里插入图片描述

四、编译安装

进入到上面的 生成位置目录

1.编译:

make -j12

这个 -j线程数 ;里面的线程数是由 处理最大决定的,最好不能超过你的核数

在这里插入图片描述

过程可能慢,要30分钟左右
在这里插入图片描述

2. 安装

sudo make install

这个安装的位置是在 生成Makefile确定的,

在这里插入图片描述

我是要自己定义 到自己的位置

make install DESTDIR=/home/zhy/Downloads/pcl-pcl-1.13.1/install

把这些东西拷贝到你需要的地方就行了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何学好C++?学习C和C++的技巧是什么?

如何学好C?学习C和C的技巧是什么? 你这三个问题,前两个都是意思是差不多的,那么怎么怎么学习C/C我来问答一下:最近很多小伙伴找我,说想要一些C资料,然后我根据自己从业十年经验,熬夜搞了几个通…

vue中父组件给子组件传递了参数后,什么时候确保子组件中收到的参数更新了

有这样的一个场景,在父组件中给子组件通过props进行了传值如students,然后想在父组件中调用子组件中的方法,这个方法中用到了父组件传递的参数,如何保证在父组件中调用子组件方法时这个值是最新的? 将父组件调用子组件…

技术的新浪潮:从SOCKS5代理到跨界电商的未来

在当今这个日新月异的技术时代,各种创新技术如雨后春笋般涌现。从SOCKS5代理到跨界电商,再到爬虫技术、出海战略和游戏产业的飞速发展,我们正处于一个技术变革的黄金时代。 SOCKS5代理:安全的网络通道 SOCKS5代理是一种网络协议…

Qt文件 I/O 操作

一.QFile 文件读取 QIODevice::ReadOnly QString filePath"/home/chenlang/RepUtils/1.txt"; QFile file(filePath); 1.逐行读取 if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {QTextStream in(&file);while (!in.atEnd()) {QString line i…

go实现文件的读写

读文件 1.ioutil.ReadFile package mainimport ("fmt""io/ioutil" )func main() {filePath : "example.txt"data, err : ioutil.ReadFile(filePath)if err ! nil {fmt.Printf("无法读取文件:%v\n", err)return}fmt.Print…

【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构

完全解耦的时间片轮询框架构 简介项目代码timeslice.htimeslice.clist.hlist.c 创建工程移植代码实验函数说明timeslice_task_inittimeslice_task_addtimeslice_tak_deltimeslice_get_task_num 结尾 简介 timeslice是一个时间片轮询框架,他是一个完全解耦的时间片轮…

sift特征提取matlab

SIFT(Scale-Invariant Feature Transform)是一种用于图像处理和计算机视觉中的特征提取方法,它具有尺度不变性和旋转不变性等特点,通常用于图像匹配、物体识别和跟踪等任务。以下是如何在MATLAB中使用SIFT特征提取的一般步骤&…

Docker容器的应用部署

MySQL部署 案例需求: 在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server 实现步骤: 搜索mysql镜像拉取mysql镜像创建容器操作容器中的mysql 相关知识: 容器内的网络服务和外部机器不能直接通信外部机器和宿主…

三十七、【进阶】验证索引的效率

1、准备工作: 创建一张表,该表中有一千万条数据,名为tb_sku; 2、使用主键查询: select * from tb_stu where id1\G; 3、使用非索引查询: 4、给sn字段创建索引: 在创建过程中,发现…

如何使用 nvm-windows 这个工具来管理你电脑上的Node.js版本

nvm-windows 是一个用于管理在 Windows 上安装的多个 Node.js 版本的工具。以下是安装和使用 nvm-windows 的步骤: 第1步:下载 nvm-windows 访问 nvm-windows 的 GitHub发布页面.下载最新版本的 nvm-setup.zip 文件。 第2步:安装 nvm-wind…

JavaScript之while和do while循环的用法

JavaScript之while和do while循环的用法 1、while的用法2、do while的用法 1、while的用法 1)while循环的基本语法: while (condition) { // code to be executed while the condition is true }当条件为真(即condition的结果为true&…

conda虚拟环境笔记收录

1、安装conda 增加执行权限: chmod x Anaconda3-2023.03-1-Linux-x86_64.sh 开始执行:./Anaconda3-2023.03-1-Linux-x86_64.sh2、查看版本 conda --version3、查看当前虚拟环境 虚拟环境和全局环境有前缀可见 如果不进行设置,重新启动就变成…

C语言中的结构体和联合体有什么区别?

文章目录 1. 结构体(Structures)的理论知识详解1.1 C结构体语法1.2 结构体用法案例2. 联合体(Unions)的理论知识详解2.1 C联合体语法2.2 联合体数据大小2.3 C联合体用法案例3. 结构体和联合体的区别和联系3.1 结构体和联合体的区别3.2 结构体和联合体联系4. 实际代码在工作…

MySQL的基础(一)

MySQL的基础(一) SQLSQL的语法特点主要包括以下几点:一、 SQL - DDL -- 数据定义语言1.1 数据库操作1.1 显示现有的数据库1.2 创建数据库1.3 删除数据库1.4 使用 1.2 数据表操作1.2.1 表查询1.2.2 表创建1.2.3 修改表 1.2.4 小结 二、SQL - D…

【Python基础】Python基本数据类型 (新人必备)

Python是一种弱类型语言,因此变量的数据类型可以动态改变。Python基本的数据类型包括以下几种: 整型(int):表示整数,如1、2、3等。浮点数(float):表示带有小数部分的数字…

calcite 校验层总结

1、校验的作用 1)完善语义信息 例如在SQL语句中,如果碰到select * 这样的指令,在SQL的语义当中,“*” 指的是取出对应数据源中所有字段的信息,因此就需要根据元数据信息来展开。 2)结合元数据信息来纠偏…

XTU-OJ 1253-Robot

Robot 题目描述 有N个任务需要Robot去完成,这个N个任务的地点在一个数轴上,坐标为1到n。每个任务需要先完成ai个任务才能开始去做。Robot可以在直线上左右移动,初始位置位于任务1的地点,方向朝向数轴正方向。请问Robot最少转换多少…

特殊类设计[下] --- 单例模式

文章目录 5.只能创建一个对象的类5.1设计模式[2.5 万字详解:23 种设计模式](https://zhuanlan.zhihu.com/p/433152245)5.2单例模式1.饿汉模式1.懒汉模式 6.饿汉模式7.懒汉模式7.1饿汉模式优缺点:7.2懒汉模式1.线程安全问题2.单例对象的析构问题 8.整体代码9.C11后可…

UVa129 Krypton Factor(困难的串)

1、题目 2、题意 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”。例如,BB、ABCDACABCAB、ABCDABCD都是容易的的串,而D、DC、ABDAB、CBABCBA 都是困难的串。 输入正整数 k k k 和 L L L&a…

K8S基础架构租赁(Lease )

分布式系统通常需要租约(leases),租约提供了锁定共享资源和在一组成员之间协调活动的机制。 在Kubernetes中,租约的概念由协调(k8s.io) API组中的Lease对象表示。 在Kubernetes中,Lease对象用于协调集群中的节点和组件之间的通信和协作。例如…