Ubuntu20.04 + QT5.14.2 + VTK8.2.0 + PCL 1.10 环境配置


Ubuntu20.04 + QT5.14.2 + VTK8.2.0 + PCL 1.10 环境配置

一、VTK 编译和安装

1、库依赖:

# X11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
# OpenGL
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
# cmake && cmake-gui
sudo apt-get install cmake cmake-gui
sudo apt install -y libxt-dev
sudo apt install -y cmake-qt-gui
sudo apt install build-essential cmake

2、下载资源:下载VTK8.2.0


3、编译:

  • 创建build文件夹
cd VTK-8.2.0    
mkdir build
cd build 
  • 使用cmake-gui编译:设置源码目录和输出目录,勾选Group和Adavanced,点击configure,按下图设置
cmake-gui

在这里插入图片描述

  • 第一次点击configure后,勾选“VTK-Group-Qt”,点击“Configure”;完成后,显示“Configuring done”;
    在这里插入图片描述
  • 最后点击“Generate”;显示“Generating done”,完成。
    在这里插入图片描述

4、安装

make -j4
sudo make install

5、qtcreator 配置编译的libQVTKWidgetPlugin.so

  • libQVTKWidgetPlugin.so 路径/build/lib

    cd ./lib
    
  • 添加到qtcreator中,libQVTKWidgetPlugin.so复制到qt路径下,

    sudo cp libQVTKWidgetPlugin.so /home/ljn/Qt5.14.2/Tools/QtCreator/lib/Qt/plugins/designer
    

在这里插入图片描述


二、PCL安装

1、一键安装

sudo apt install libpcl-dev

会默认安装 vtk 和 eigne,后面我使用的是自己安装的vtk-8.2,默认安装目录在 /usr/local/include

在这里插入图片描述

在这里插入图片描述

2、测试

  • 文件结构
    在这里插入图片描述

  • CMakeLists.txt

    cmake_minimum_required(VERSION 2.6)
    project(pcl_test)
     
    find_package(PCL 1.10 REQUIRED)
     
    include_directories(${PCL_INCLUDE_DIRS})
    link_directories(${PCL_LIBRARY_DIRS})
    add_definitions(${PCL_DEFINITIONS})
     
    add_executable(pcl_test pcl_test.cpp)
     
    target_link_libraries (pcl_test ${PCL_LIBRARIES})
     
    install(TARGETS pcl_test RUNTIME DESTINATION bin)
    
  • pcl_test.cpp

    
    #include <iostream>
    #include <pcl/common/common_headers.h>
    #include <pcl/io/pcd_io.h>
    #include <pcl/visualization/pcl_visualizer.h>
    #include <pcl/visualization/cloud_viewer.h>
    #include <pcl/console/parse.h>
     
     
    int main(int argc, char **argv) {
        std::cout << "Test PCL !!!" << std::endl;
        
        pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
        uint8_t r(255), g(15), b(15);
        for (float z(-1.0); z <= 1.0; z += 0.05)
        {
          for (float angle(0.0); angle <= 360.0; angle += 5.0)
          {
    	pcl::PointXYZRGB point;
    	point.x = 0.5 * cosf (pcl::deg2rad(angle));
    	point.y = sinf (pcl::deg2rad(angle));
    	point.z = z;
    	uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
    		static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
    	point.rgb = *reinterpret_cast<float*>(&rgb);
    	point_cloud_ptr->points.push_back (point);
          }
          if (z < 0.0)
          {
    	r -= 12;
    	g += 12;
          }
          else
          {
    	g -= 12;
    	b += 12;
          }
        }
        point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
        point_cloud_ptr->height = 1;
        
        pcl::visualization::CloudViewer viewer ("test");
        viewer.showCloud(point_cloud_ptr);
        while (!viewer.wasStopped()){ };
        return 0;
    }
    
    
  • 编译测试

    mkdir build
    cd build 
    cmake ..
    make 
    ./pcl_text
    
  • 运行结果

在这里插入图片描述

三、qt 中使用 vtk 显示点云图

1、pro 中引入依赖

根据自身安装的版本引入相关依赖

INCLUDEPATH += /usr/include/boost
LIBS += /usr/lib/x86_64-linux-gnu/libboost_*.so

INCLUDEPATH += /usr/include/pcl-1.10/
LIBS += /usr/lib/x86_64-linux-gnu/libpcl_*.so

INCLUDEPATH += /usr/include/vtk-7.1
LIBS += /usr/lib/x86_64-linux-gnu/libvtk*.so

INCLUDEPATH += /usr/include/eigen3
<think>嗯,用户遇到了在Ubuntu 20.04上使用cmake-gui构建VTK-8.2.0时出现的“could not load cache”错误。我需要先理解这个问题的可能原因,然后给出解决方案。根据之前的引用资料,用户可能是在安装VTK或相关依赖时出现了问题。 首先,“could not load cache”通常与CMake的缓存文件有关。缓存文件CMakeCache.txt可能在配置过程中被损坏或无法读取。我需要检查用户是否正确生成了这个文件,或者在配置时是否有权限问题。另外,VTK的版本和依赖库的兼容性也很重要,比如引用的资料提到需要确保依赖版本一致,特别是VTKPCL的版本匹配问题[^3]。 接下来,用户可能在执行CMake配置时没有正确设置参数,或者路径中存在空格或特殊字符,导致CMake无法正确生成缓存。需要建议用户清理构建目录,重新运行CMake,并确保所有依赖项已正确安装,比如OpenCV、Qt等[^4][^2]。 还有,用户可能没有正确安装必要的依赖库,比如引文提到的libvtk6-dev或者VTK编译所需的依赖项。需要检查是否安装了所有必需的依赖,如libboost-dev、libeigen3-dev等[^4]。 另外,用户可能在构建VTK时使用了错误的CMake参数,例如没有启用Qt支持,或者VTK_GROUP_QT选项设置不正确。需要确认在CMake配置中正确启用了Qt相关选项,并指定了Qt的安装路径[^2]。 最后,权限问题也可能导致无法写入缓存文件,需要建议用户检查目录权限,或者尝试在用户目录下构建,避免系统目录的权限限制。 总结可能的解决步骤:清理构建目录,重新配置CMake并确保参数正确,检查依赖库安装,处理路径问题,调整权限。同时,参考用户提供的引用资料中的安装步骤,确保VTKQt版本兼容,如使用Qt5.125.14.2[^1]。</think>### 解答:解决Ubuntu 20.04上CMake-gui "Could Not Load Cache"错误 #### 1. **问题原因分析** 此错误通常由以下原因导致: - **缓存文件损坏**:CMake生成的`CMakeCache.txt`文件可能因配置中断或权限问题损坏。 - **路径或配置错误**:构建目录包含空格、特殊字符或路径过长,导致CMake无法正确加载缓存。 - **依赖缺失或版本冲突**:未正确安装VTK依赖项(如Qt、OpenGL)或版本不兼容(如PCLVTK版本需一致)[^3]。 --- #### 2. **具体解决步骤** **步骤1:清理构建目录** ```bash cd /path/to/vtk-8.2.0/build # 进入构建目录 rm -rf * # 删除所有生成的文件 ``` **步骤2:重新运行CMake并指定参数** ```bash cmake-gui .. # 在GUI中设置以下关键参数: ``` - **VTK_Group_Qt**:勾选以启用Qt支持。 - **Qt5_DIR**:指定Qt安装路径(如`/opt/Qt5.12.0/lib/cmake/Qt5`)。 - **VTK_RENDERING_BACKEND**:设置为`OpenGL2`(避免旧版OpenGL兼容问题)[^1]。 **步骤3:检查依赖项安装** 确保安装以下依赖: ```bash sudo apt install libvtk6-dev libboost-dev libeigen3-dev libflann-dev sudo apt install qtbase5-dev qtchooser qt5-qmake # 确保Qt版本与VTK兼容 ``` **步骤4:避免路径问题** - 构建目录路径应为纯英文且无空格(如`~/vtk_build`)。 - 若使用自定义安装路径,需设置`CMAKE_INSTALL_PREFIX`(如`/usr/local/vtk8.2`)。 **步骤5:调整权限** ```bash sudo chown -R $USER:$USER /path/to/vtk-8.2.0 # 确保用户有读写权限 ``` --- #### 3. **验证配置** - 在CMake-gui中点击`Configure`,检查是否报错。 - 若提示缺失依赖,根据输出安装对应库(如`libtbb-dev`或`libjpeg-dev`)。 --- #### 4. **完整编译与安装** ```bash make -j$(nproc) # 使用多线程加速编译 sudo make install # 安装到系统目录 ``` --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿箭柠檬茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值