Vtk7.1.1+PCL1.12.0安装

news2024/11/20 8:36:19

错误可参考:Ubuntu20.04 编译 pcl1.8可能出现的问题

安装参考1:ubuntu20.04下安装pcl_ubuntu安装pcl_Yuannau_jk的博客-CSDN博客
安装参考2:Ubuntu20.04 安装pcl详细教程_ubuntu20.04安装pcl_LYiiiiiii的博客-CSDN博客
安装参考3:PCL1.12+VTK7.1.1 && Ubuntu20.04.3+VSCode(官网最新版2022.01) - 知乎


安装过程

1.安装依赖

sudo apt-get update  
sudo 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  
sudo apt-get install libboost-all-dev  
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-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 qt-sdk openjdk-8-jdk openjdk-8-jre


sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install cmake cmake-gui 

2.安装VTK
VTK下载:VTK-7.1.1.zip

tar -zvxf VTK-7.1.1.tar.gz #根据下载的版本,解压到想要的文件夹下
mkdir build
cd build
cmake-gui

配置 where is the source code 为VTK-7.1.1所在目录;
配置 where to build the binaries 为VTK-7.1.1下的build文件夹;
点击“Configure”,(用“Unix Makefiles”就可以);配置完成后,显示“Configuring done”。
ps.框里不能报红,红了就是缺少东西了,不选正确后面PCL安装不上!!

在没有任何报红情况下,再点击“Configure”;配置完成后,显示“Configuring done”;
点击“Generate”;显示“Generating done”。

#在build文件夹下
make -j8 # 8核处理器。电脑硬件不行就使用make
sudo make install

vtk安装完成。 

———————————————————————————————————————————

cmake-gui编译VTK可能遇到的问题

错误1:“/usr/bin/ld: cannot find -lvtkIOMPIImage /usr/bin/ld: cannot find -lvtkIOMPIParallel /usr/bin/ld: cannot find -lvtkFiltersParallelDIY2”

解决:重新configure vtk,勾选“Advanced”,在search中把/usr/bin/ld找不到的vtkIOMPIImage,vtkIOMPIParallel,vtkFiltersParallelDIY2都选上。

错误2:在configure VTK-7.1.1时,提示:要求必须用qt4;类似于“Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x”这样的一段提示。

解决:ubuntu20.04安装qt4_nicholas_duan的博客

错误3:OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for   compatibility with CMake 3.10 and below the legacy GL library will be used. Call Stack (most recent call first):   CMake/vtkOpenGL.cmake:77 (find_package)   Rendering/OpenGL2/CMakeLi

解决:在/VTK-7.1.1/CMakeLists.txt文件中加入下面内容。

错误4:CMake Deprecation Warning at ThirdParty/libproj4/vtklibproj4/cmake/policies.cmake:2 (cmake_policy):
  The OLD behavior for policy CMP0022 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ThirdParty/libproj4/vtklibproj4/CMakeLists.txt:43 (include)

解决:在 /VTK-7.1.1/ThirdParty/libproj4/vtklibproj4/cmake/policies.cmake修改如下

错误5:CMake Deprecation Warning at ThirdParty/libproj4/vtklibproj4/cmake/policies.cmake:2 (cmake_policy):> The OLD behavior for policy CMP0022 will be removed from a future version of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. Call Stack (most recent call first): ThirdParty/libproj4/vtklibproj4/CMakeLists.txt:43 (include)
解决:/VTK-7.1.1/ThirdParty/libproj4/vtklibproj4/cmake/policies.cmake对应与Policy CMP0022修改。

if (CMAKE_MAJOR_VERSION GREATER 2)
    cmake_policy(SET CMP0022 NEW) # interface link libraries
    cmake_policy(SET CMP0042 NEW) # osx rpath
    cmake_policy(SET CMP0011 NEW) # policy setting
endif()

PCL

可参考:Ubuntu18.04安装PCL 1.9.1_振华OPPO的博客

PCL编译出错参考:Ubuntu20.04安装PCL1.8.0编译错误_小方只会百度的博客


1.下载地址: Release PCL 1.12.0 · PointCloudLibrary/pcl · GitHub

cd pcl的目录
mkdir build    
cd build    
cmake -DCMAKE_TYPE=None ..    
make -j8    
sudo make install
#pcl安装完成

出现的错误可能都是因为VTK,上面重新configure。VTK 的Configure有报红没解决。VTK在cmake-gui界面内没有configure好就generate..后续pcl的make和install都会导致失败。

cmake编译PCL遇到的问题

(1)ClangFormat

    问题描述:Could NOT find ClangFormat (missing: ClangFormat_EXECUTABLE ClangFormat_VERSION) (Required is at least version “10”)
    解决方法:sudo apt-get install clang-format-10

(2)metslib

    问题描述:Checking for module ‘metslib’ – No package ‘metslib’ found
    解决方法:下载并安装metslib包,下载链接: metslib-0.5.3.,解压并进入metslib-0.5.3文件夹,然后执行
    sudo sh ./configure
    sudo make
    sudo make install

(3)PNG

    问题描述:Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
    解决方法:sudo apt-get install libpng-dev

(4)PCAP

    问题描述:Could NOT find Pcap (missing: PCAP_LIBRARIES PCAP_INCLUDE_DIRS)
    解决方法:安装pcap包,依次执行
    git clone https://github.com/the-tcpdump-group/libpcap
    cd libpcap
    ./configure # 可能会遇到 configure: error: Neither flex nor lex was found. 见下“注”
    make -j8
    sudo make install

注:如果在./configure时出现 configure: error: Neither flex nor lex was found.
运行:sudo apt-get install flex bison
(5)GLEN

    问题描述:Could NOT find GLEW (missing: GLEW_INCLUDE_DIR GLEW_LIBRARY)
    解决方法:sudo apt install libglew-dev


PCL测试

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

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

相关文章

涨知识!你不知道的中国手机号码的编码和划分规则

引言 在当今信息化的时代,移动电话号码已经成为人们日常生活中必不可少的联系方式。中国作为世界上拥有庞大人口数量的国家之一,移动电话号码的编码和划分显得尤为重要。 中国的移动电话号码分为三大运营商,每个运营商又有自己的号码段&…

Spring Security OAuth2.0(三)-----基于Redis存储和JDBC存储

问题 令牌往哪里存? 客户端信息入库 第三方应用优化 1.令牌往哪里存? 在我们配置授权码模式的时候,有两个东西当时存在了内存中: InMemoryAuthorizationCodeServices 这个表授权码存在内存中。InMemoryTokenStore 表示生成的令…

open3D

一、说明 对于点云 处理,这里介绍哦pen3d,该软件和opencv同样是interl公司的产品。 Open3D 是一个开源库,支持快速开发处理 3D 数据的软件。 Open3D 前端在 C 和 Python 中公开了一组精心挑选的数据结构和算法。后端经过高度优化,…

Spring Boot处理CORS跨域请求的三种方法

1 前言 Springboot跨域问题,是当前主流web开发人员都绕不开的难题。但我们首先要明确以下几点 跨域只存在于浏览器端,不存在于安卓/ios/Node.js/python/ java等其它环境跨域请求能发出去,服务端能收到请求并正常返回结果,只是结…

05-权限分配 尚筹网

权限控制 权限控制机制的本质就是“用钥匙开锁”。 在实现权限控制之前,这里先完成给Admin分配Role和给Role分配Auth的功能。 一、给Admin分配Role 目标 ​ 通过前端页面操作,将Admin与Role之间的关系保存到数据库 思路 ​ 给下面的按钮&#xff…

【ED合集】事件检测的文章

1 CorED: Incorporating Type-level and Instance-level Correlationsfor Fine-grained Event Detection 论文来源:SIGIR 2022(CCF A类会议) 论文链接:https://dl.acm.org/doi/pdf/10.1145/3477495.3531956 代码链接:GitHub - JiaweiSheng…

抖音小程序|基于天气API实现天气预报功能

文章目录 一、前言包含了功能UI展示 二、开发前的准备三、开发步骤1.app.js 配置2.pages/index.js 演示二维码源码在百度网盘下载 一、前言 参考老版iPhone自带的天气预报APP。目前只有一个界面UI, 后续会更新出更多功能; 包含了功能 - 实况预报 - 未来48小时 - 未来一周的天…

动态gif图片如何在线做?轻松实现图片在线生成gif

常见的jpg、png格式的静态图片想要变成gif格式的动态图片时,要怎么办呢?有没有什么简单实用的gif制作工具呢? 一、什么工具能够在线制作gif? GIF中文网作为一款专业的gif制作(https://www.gif.cn/)工具&a…

Golang - slice 内部实现原理解析

Golang - slice 内部实现原理解析 一.Go中的数组和slice的关系 1.数组 在几乎所有的计算机语言中,数组的实现都是一段连续的内存空间,Go语言数组的实现也是如此,但是Go语言中的数组和C语言中数组还是有所不同的 C语言数组变量是指向数组第…

鸿蒙Hi3861学习七-Huawei LiteOS(信号量)

一、简介 信号量(Semaphore)是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。 在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护,信号量功…

阿里工作7年,肝到P8就靠这份学习笔记了,已助14个朋友拿到offer

​ 在阿里工作了7年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P8也费了不少心思。 技术的更新迭代越来越快,程序员或许是这个过程中最为挣扎的一波人。每…

第0章 学习之前的准备

突然想写点关于linux的东西,一是将自己几十年来零碎的知识作以串联,二是能为正在学习路上的新手作些指引。而恰好作者的孩子是一位初一的学生,我写的这些东西也正是我手把手教授他的,现在分享出来并且命名为《linux中学教程》&…

记一次SpringBoot应用性能调优过程

背景 使用SpringBoot、MyBatis-Plus开发一个接口转发的能,将第三方接口注册到平台中,由平台对外提供统一的地址,平台转发时记录接口的转发日志信息。开发完成后使用Jmeter进行性能测试,使用100个线程、持续压测180秒,…

Java中池化技术探讨

背景:在日常开发中,除了考虑IO操作、线程上下文切换、GC的影响性能外。还通过池化技术提高性能通过循环复用资源,降低资源创建和销毁带来的开销和损失,从而提高性能,例如对象池、内存池、线程池、连接池 一、对象池&a…

软件测试 - 测试用例设计方法之等价类划分和边界值分析

1. 等价类划分法 1.1 基本理论 等价类划分法是通过科学的方法找到具有共同特性的测试输入的集合,避免进行穷举测试,大大减少了测试用例的数量,从而提高测试效率。等价类划分法的典型应用场景就是输入框,适用于较少数量输入框的场…

晶振概述及工作原理

晶振在电路板中随处可见,只要用到处理器的地方就必定有晶振的存在,即使没有外部晶振,芯片内部也有晶振。 晶振概述 晶振一般指晶体振荡器。晶体振荡器是指从一块石英晶体上按一定方位角切下薄片(简称为晶片)&#xf…

虚拟服务器基础架构解决方案:用最小的工作量实现最大的价值

虚拟服务器基础架构解决方案:用最小的工作量实现最大的价值 一切皆可虚拟化!包括服务器在内。NetApp 虚拟服务器基础架构解决方案有助于加快数据访问速度、构建创新服务并简化部署,从而实现最大价值。 为什么选择 NetApp 的虚拟服务器基础架…

pytorch矩阵乘法总结

1. element-wise(*) 按元素相乘,支持广播,等价于torch.mul() a torch.tensor([[1, 2], [3, 4]]) b torch.tensor([[2, 3], [4, 5]]) c a*b # 等价于torch.mul(a,b) # tensor([[ 2, 6], # [12, 20]]) a * torch.tenso…

详解C++类对象(上篇)——超详细

目录 一,面向对象&面向过程的认识(简单了解即可,逐步认识) 二, 类 2.1 类的引入 2.2 类的定义 1. struct 2. class 类的两种定义方式: 2.3 封装&类的访问限定符 1. 封装概念 2. 类的访问限定符 …

低代码如何不写代码创建表单和维护表单

工作表新建与修改 新建工作表的流程包含 新建工作表/编辑公祖表为工作表添加字段,例如“员工档案”表中有姓名、性别、年龄等字段为字段设置属性工作表布局工作表预览、保存、关闭 1、新建工作表/修改工作表 新建工作表 修改工作表 2、为工作表添加字段 添加字段 左…