【Linux 】PCL安装过程踩坑记录

安装步骤参考:
Ubuntu18.04安装PCL(详细教程)
在Ubuntu中安装Eigen3库
编译出错,eigen官网下载,更换eigen版本
查看eigen版本
【Linux 问题记录】(2)内存不足
解决c++: internal compiler error: 已杀死 (program cc1plus)

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.9 libflann-dev
sudo apt-get install libeigen3-dev 这个需要自己下载正确版本安装
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7.1-qt
sudo apt-get install libvtk7.1 
sudo apt-get install libvtk7-qt-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 openjdk-8-jdk openjdk-8-jre

1.1 第三方库简介

1.1.1

安装Git版本控制工具、构建必备工具和Linux内核开发所需的libc头文件。

sudo apt-get install git build-essential linux-libc-dev

git:Git版本控制工具。
build-essential:它是一组常用的构建工具,包括编译器、链接器和其他构建所需的工具。
linux-libc-dev:它提供了Linux内核开发所需的libc(C标准库)头文件。

1.1.2

安装CMake构建工具及其图形用户界面版本,以便在你的系统上进行项目构建和管理。

sudo apt-get install cmake cmake-gui

cmake:这是要安装的软件包的名称,即CMake构建工具。
cmake-gui:这是要安装的软件包的名称,它提供了CMake的图形用户界面版本,可通过图形界面进行配置和生成项目构建系统。

1.1.3

安装与USB和udev相关的开发库,以便在你的系统上进行USB设备的访问、控制和设备管理。

sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev

libusb-1.0-0-dev:这是要安装的软件包的名称,它提供了与USB通信相关的开发库,用于在应用程序中进行USB设备的访问和控制。
libusb-dev:这是要安装的软件包的名称,它是旧版的libusb开发库,用于支持与USB设备进行交互的应用程序开发。
libudev-dev:这是要安装的软件包的名称,它提供了udev(Linux下的设备管理)的开发库,用于在应用程序中进行设备管理和监控。

1.1.4

安装MPI(Message Passing Interface)的开发和运行时环境,以便在你的系统上进行MPI并行计算和开发MPI应用程序。

sudo apt-get install mpi-default-dev openmpi-bin openmpi-common 

mpi-default-dev:这是要安装的软件包的名称,它是MPI的默认开发包,包含了开发所需的头文件和库。
openmpi-bin:这是要安装的软件包的名称,它是OpenMPI的二进制文件,用于执行MPI程序。
openmpi-common:这是要安装的软件包的名称,它包含了OpenMPI的共享文件和配置文件。

1.1.5

安装FLANN库的运行时和开发环境,以便在你的系统上进行近似最近邻搜索的应用程序开发和运行。

sudo apt-get install libflann1.9 libflann-dev

FLANN(Fast Library for Approximate Nearest Neighbors)是一个快速的近似最近邻搜索库,用于高维数据集的快速查询。FLANN库提供了一种有效的方法来解决最近邻搜索问题,给定一个查询点,它可以在大规模数据集中快速找到与之最接近的数据点。
对于许多机器学习、计算机视觉和模式识别任务非常有用,例如图像匹配、物体识别、聚类和数据可视化等。FLANN库的主要特点包括:

  1. 高效性:FLANN使用一系列优化的数据结构和算法,以实现快速的近似最近邻搜索。它支持不同的搜索策略,如KD-Tree、KMeans和LSH等。
  2. 可扩展性:FLANN可以处理大规模的数据集,具有较低的内存消耗和快速的查询速度。它能够应对高维数据的挑战,并支持动态数据集的更新和删除。
  3. 简单易用:FLANN提供了简单的接口和灵活的配置选项,使用户可以方便地集成它到自己的应用程序中。它支持多种编程语言,如C++、Python和MATLAB等。

libflann1.9:这是要安装的软件包的名称,它是FLANN库的运行时库,提供了近似最近邻搜索的功能。
libflann-dev:这是要安装的软件包的名称,它是FLANN库的开发包,包含了开发所需的头文件和库文件。

1.1.6

安装Eigen库的开发环境。以便在你的系统上进行线性代数和数值计算的应用程序开发。

sudo apt-get install libeigen3-dev

Eigen库安装失败
在这里插入图片描述

可在终端中输入locate eigen3查看apt-get 默认安装位置
因为eigen3 被默认安装到了usr/local/include里了(或者是usr/include里,这两个都差不多,都是系统默认的路径),在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>所以要做下处理,否则一些程序在编译时会因找不到Eigen/Dense而报错。上面指令将usr/local/include/eigen3文件夹中的Eigen文件递归地复制到上一层文件夹(直接放到/usr/local/include中,否则系统无法默认搜索到 -> 此时只能在CMakeLists.txt用include_libraries(绝对路径了))

解决
2.1 安装eigen依赖

sudo apt-get install libeigen3-dev

2.2 在Github上克隆一个eigen3库

#在GitHub上克隆eigen3库文件
git clone https://github.com/OPM/eigen3.git
 
#编译安装
cd eigen3
mkdir build
cd build
cmake ..
sudo make install
 
#移动头文件
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 

sudo make install 是一个常见的用法,用于在 Linux 系统中使用 Makefile 构建的项目中安装编译后的文件。该命令会执行 Makefile 中定义的安装规则,将生成的文件复制到系统的标准位置,以使它们可以被其他程序或用户访问。

在运行 sudo make install 前,请确保你已经在正确的目录中,包含了 Makefile 文件,并且已经按照项目的要求完成了编译过程。
2.3 测试
1)新建test.cpp文件

#建立 test 测试文件
touch test.cpp
 
#用 gedit 打开此测试文件
gedit test.cp

2)添加测试代码

#include <iostream>
#include <Eigen/Dense>
 
//using Eigen::MatrixXd;
using namespace Eigen;
using namespace Eigen::internal;
using namespace Eigen::Architecture;
 
using namespace std;
 
int main()
{
        cout<<"*******************1D-object****************"<<endl;
        Vector4d v1;
        v1<< 1,2,3,4;
        cout<<"v1=\n"<<v1<<endl;
 
        VectorXd v2(3);
        v2<<1,2,3;
        cout<<"v2=\n"<<v2<<endl;
 
        Array4i v3;
        v3<<1,2,3,4;
        cout<<"v3=\n"<<v3<<endl;
 
        ArrayXf v4(3);
        v4<<1,2,3;
        cout<<"v4=\n"<<v4<<endl;
}

3)编译测试代码

g++ test.cpp -o test

编译后会在当前目录下生成一个可执行文件,文件名为 test
4)运行测试代码

#cd test文件所在目录
./test

在这里插入图片描述
安装成功。

Eigen是一个C++模板库,提供线性代数运算和数值计算的功能。它被广泛用于科学计算、机器学习和计算机图形学等领域。

libeigen3-dev:它是Eigen库的开发包,包含了开发所需的头文件和库文件。

1.1.7

安装使用 Boost 库开发和编译 C++ 程序的环境。

sudo apt-get install libboost-all-dev

Boost 是一个广泛使用的 C++ 库集合,提供了许多用于各种任务的工具和组件,如数据结构、多线程、文件系统、正则表达式等。
libboost-all-dev 是一个在 Linux 系统上安装 Boost 库的软件包。

1.1.8

sudo apt-get install libvtk7.1-qt
sudo apt-get install libvtk7-qt-dev

libvtk7.1-qt是一个用于在 Linux 系统上安装 VTK(Visualization Toolkit)库的软件包。VTK 是一个用于可视化和图形处理的开源库,广泛应用于科学、工程和医学等领域。
libvtk7-qt-dev 是一个在 Linux 系统上安装 VTK(Visualization Toolkit)库及其 Qt 开发支持的软件包。VTK 是一个用于可视化和图形处理的开源库,而 Qt 是一个跨平台的应用程序开发框架,提供了丰富的图形界面和工具。

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 openjdk-8-jdk openjdk-8-jre

libqhull是用于安装 Qhull 库的软件包。Qhull 是一个用于计算几何学的开源库,提供了各种几何计算和几何数据处理的功能。
libgtest-dev 是用于安装 Google Test(gtest)库的软件包。Google Test 是一个 C++ 的单元测试框架,用于编写和运行测试代码。

1.2 Linux 常用命令

sudo:它是"superuser do"的缩写,用于以超级用户(root)权限执行命令。在安装软件或进行系统级操作时,通常需要使用sudo来获取足够的权限。

apt-get:它是Debian和Ubuntu中的包管理器,用于从软件仓库中安装、升级、删除和管理软件包。

2. 安装pcl

2.1下载pcl

git clone https://github.com/PointCloudLibrary/pcl.git 

默认下载最新版

2.2 编译

cd pcl 
mkdir release 
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr .. 
make  
sudo make install

2.2.1 Eigen相关报错

请添加图片描述
考虑是Eigen库版本问题
查看当前库版本

dpkg -s libeigen3-dev | grep Version

3.3.4

使用git clone https://github.com/OPM/eigen3.git安装的不是最新版
改为使用eigen官网下载需要版本,解压编译安装。

mkdir build
cd build
cmake ..
make
sudo make install

先尝试了3.2.10,报错依然存在,遂尝试最新版3.4.0,报错解决。

2.2.2 compiler error

在这里插入图片描述
原因:内存不足
dd: failed to open ‘/swapfile’: Text file busy 如下图: 这个时候你只需要运行 sudo swapoff -a 即可解决。 然后继续创建交换分区即可。
解决:【Linux 问题记录】(2)内存不足

3.验证

cd /path/to/pcl/test
pcl_viewer car6.pcd

两辆车的点云可视化,安装成功。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装PCL库可以按照以下步骤进行: 1. 首先,进入PCL源代码目录,执行以下命令: ``` cd pcl-pcl-1.9.1 ``` 2. 创建一个build目录,并进入该目录: ``` mkdir build cd build ``` 3. 在build目录中使用CMake进行配置: ``` cmake -DCMAKE_BUILD_TYPE=Release .. ``` 4. 使用make命令进行编译: ``` make -j2 ``` 5. 使用sudo权限安装PCL库: ``` sudo make -j2 install ``` 以上步骤将安装PCL库到你的Linux系统中。请注意,这些步骤假设你已经安装了CMake和make等必要的工具,如果没有安装,你需要先安装它们。 另外,你还可以通过使用阿里镜像源来加速安装和下载速度。打开"Software & Updates",将下载源更改为阿里镜像。这样可以提高下载速度。 如果你需要在Clion中配置和运行PCL项目,可以按照以下步骤操作: 1. 首先,在终端中执行以下命令安装所需的依赖项: ``` sudo apt-get install build-essential ``` 2. 安装Clion(或其他IDE): ``` sudo snap install clion --classic ``` 3. 更新软件包列表: ``` sudo apt-get update ``` 4. 安装PCL库: ``` sudo apt install libpcl-dev ``` 5. 打开Clion并配置编译器。在设置(Settings)中,设置可用的编译器路径。 6. 创建一个新项目,并在CMakeList.txt文件中添加以下内容: ``` cmake_minimum_required(VERSION 3.17) project(ProjectName) set(CMAKE_CXX_STANDARD 14) find_package(PCL REQUIRED) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) add_executable(ProjectName main.cpp) target_link_libraries (ProjectName ${PCL_LIBRARIES}) ``` 7. 配置完成后,你可以使用Clion来编写和运行PCL项目了。 希望以上步骤对你有帮助。如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值