qt5.6(mingw) 编译PCL点云运行环境
迪丽瓦拉
2025-05-31 12:09:24
0

具体版本和操纵参考官网win msvc版本编译,

Qt5.6编译PCL环境

备注:

Requirements

In order to compile every component of the PCL library we need to download and compile a series of 3rd party library dependencies:

  • Boost version >= 1.46.1 (http://www.boost.org/)

used for shared pointers, and threading. mandatory

  • Eigen version >= 3.0.0 (http://eigen.tuxfamily.org/)

used as the matrix backend for SSE optimized math. mandatory

  • FLANN version >= 1.6.8 (http://www.cs.ubc.ca/research/flann/)

used in kdtree for fast approximate nearest neighbors search. mandatory

  • Visualization ToolKit (VTK) version >= 5.6.1 (http://www.vtk.org/)

used in visualization for 3D point cloud rendering and visualization. mandatory

  • googletest version >= 1.6.0 (http://code.google.com/p/googletest/)

used to build test units. optional

  • QHULL version >= 2011.1 (http://www.qhull.org/)

used for convex/concave hull decompositions in surface. optional

  • OpenNI version >= 1.1.0.25 (http://www.openni.org/)

used to grab point clouds from OpenNI compliant devices. optional

  • Qt version >= 4.6 (http://qt.digia.com/)

used for developing applications with a graphical user interface (GUI) optional

当前使用版本:

Boost 使用的是1_67

  1. 编译boost

解压boost 源码, 当前位置打开命令行: ./bootstrap.bat gcc

在源码路径下创建安装文件夹build,执行命令(一条命令): ./b2 -j4 toolset=gcc link=shared threading=multi --layout=versioned --without-python --prefix="D:\PCL_56\boost_1_67_0\build" --build-type=complete install

进行安装

  1. 编译flann

解压源码,源码目录创建build目录,使用cmake-gui进行配置(注意:make 类型要选mingw makeFile)

取消不必要模块,CMAKE_INSTALL_PREFIX选择build路径

遇到编译报错“/W1 /bigobj”

这两个都是vc编译选项,使用gcc选项: -Wall -Wa,-mbig-obj 代替;注意,此处gcc版本低,所以只替换/W1,删除 /bigobj。在build目录及子目录下找到所有的flags.make文件(总共有5个都改),打开编辑

依次点击Configure ,generate

build 目录运行:mingw32-make.exe进行编译,运行 mingw32-make.exe install进行安装

  1. Eigen 库

无需编译,解压即可。

  1. QHULL编译

解压源码,源码目录创建build目录,使用cmake-gui进行配置

依次点击Configure ,generate

build 目录运行:mingw32-make.exe进行编译,运行 mingw32-make.exe install进行安装

  1. 安装VTK

解压源码,源码目录创建build目录,使用cmake-gui进行配置

配置好源码路径和安装路径,点击Configure ,耐心等待......

(1)CMAKE_BUILD_TYPE (这里选择Release,后续根据需要可以编译debug)

(2)设置CMAKE_INSTALL_FREFIX为build

(3)勾选VTK_Group_Qt

(4)VTK_RENGDING_BACKEND (默认选择OpenGL2;如果硬件不支持则需要选择OpenGL)

(5)再次点击Configure

(6)设置Qt5_DIR

再次点击Configure,cmake会自动寻找Qt相关路径

generate

build 目录运行:mingw32-make.exe -j4(根据计算机内核数设置)进行编译,运行 mingw32-make.exe install进行安装

编译问题:debug 版本 vtkDataArray.cxx.obj: File too big

  1. 编译PCL

解压源码,源码目录创建build目录,使用cmake-gui进行配置

配置好源码路径和安装路径,点击Configure ,耐心等待......

(1)设置build路径

(2)CMAKE_BUILD_TYPE 设置为Release(debug版本可自行编译)

(3)设置engin 路径

点击Configure ,耐心等待......

(4)设置FLANN路径

点击Configure ,耐心等待......

(5)Qhull_DIR 设置

点击Configure ,耐心等待......

(6)设置VTK路径

设置为VTK 源码路径

VTK_DIR: D:/PCL_56/VTK/build

点击Configure ,耐心等待......

(7)设置boost 库路径

注意:如图所示,部分路径找不到不影响编译

(8)勾选可视化模块

(9)Configure generte

说明:配置过程中可能遇到各种问题,总的解决思路就是不断针对问题修改(可以查看下方log框里的error ,)修改后不断Configure ,直到不弹出报错窗口。

(10)编译,发布

build 目录运行:mingw32-make.exe -j4(根据计算机内核数设置)进行编译,运行 mingw32-make.exe install进行安装

编译错误:

(1)提示size_t 重复定义;修改:

(2) 找不到

具体原因未知,查看Cmake-gui 打印log,Vtk头文件已经找到,“VTK found (include: /include/vtk-8.2”

临时解决办法:将vtk 头文件绝对路径加入PCL CmakeList.txt文件:

include_directories(D:/PCL_56/VTK/build/include/vtk-8.2)

(3)Int 与 const char*不匹配

Vtk与pcl 版本匹配差异,暂时修改pcl 源码,改函数未使用;

(4)out of memory allocating 65536 bytes

解决:

同时,需要取消surface 模块构建,

编译完成,执行make install

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...