LidarView工程搭建指南
前言
笔者做过一段时间的车载LiDAR开发,对LidarView开源项目进行过深度定制,摸索了一套LidarView软件的开发和调试方法
1 软件安装
1.1 安装准备
以Windows10系统平台为例,依次下载以下工具软件,软件(VS、Qt、cdb)的版本很重要!以下版本经过验证是没有问题的
| 序号 | 工具 | 版本 | 备注 |
|---|---|---|---|
| 1 | git | --- | 拉取开源仓库代码 |
| 2 | cmake | --- | 代码工程管理工具 |
| 3 | tortoiseGit | --- | 代码对比分析工具 |
| 4 | VisualStudio | 2017 | win10开发环境配置 |
| 5 | Qt5.12.9 | 5.12.9 | Qt环境安装 |
| 6 | cdb | 2017 | Windows调试器 |
| 7 | tly | --- | vpn工具,加快拉取代码速度 |
| 8 | Inno Setup Compiler | --- | windows平台exe打包工具 |
1.2 安装git
下载并安装最新版git

1.3 安装cmake
下载并安装最新版cmake

1.4 安装tortoiseGit
下载并安装最新版tortoiseGit

1.5 安装Visual Studio 2017
下载vs2017社区版在线安装包,可以在msdn上面下载,安装以下组件

1.6 安装Qt5.12.9
去官网下载qt-opensource-windows-x86-5.12.9.exe并安装

记得要把msvc2017勾选上

1.7 安装cdb
访问网站,下载winsdksetup

安装cdb是为了调试,这里通过winsdksetup的方式进行安装,选择第一个选项然后点击Next

选择Yes然后点击Next

同意(Accept)License Agreement

勾选Debugging Tools for Windows,点击Install

然后打开QtCreator Kits页面查看Debugger,发现QtCreator已经自动识别

1.8 安装tly
这个工具主要是为了加速,因为众所周知的原因,我们需要使用它,这里不详细介绍,当然你也可以使用其它加速工具
1.9 安装Inno Setup Compiler
安装这个软件的目的是打包软件,请参考我的另一篇文章进行安装和配置
2 Superbuild工程配置
官方的代码仓库在gitlab,推荐使用这个源,工程地址是:https://gitlab.kitware.com/LidarView/lidarview.git

用git拉取代码
git clone --recursive https://gitlab.kitware.com/LidarView/lidarview.git

用QtCreator打开工程SuperBuild工程cmake文件,配置build类型(Windows目前只能支持RelWithDebInfo和Release模式)
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
set(WITH_STATIC_LASZIP OFF)
set(SUPERBUILD_ALLOW_DEBUG ON)

配置build路径,这里配置为E:\debug

3 LidarView工程配置
用cmake-gui打开LidarView工程顶层cmake,环境变量配置如下
| Variable | Value | Type |
|---|---|---|
| CMAKE_INSTALL_PREFIX | E:/debug/install | PATH |
| superbuild_python_version | 3.9 | STRING |
| paraview_version | 5.9 | STRING |
| Python3_EXECUTABLE | E:/debug/install/Python/python.exe | FILEPATH |
| ParaView_DIR | E:/debug/lidarview-superbuild/common-superbuild/paraview/build | PATH |
| Boost_USE_STATIC_LIBS | OFF | BOOL |
| Python3_LIBRARY | E:/debug/install/Python/libs/python39.lib | FILEPATH |
| Python3_INCLUDE_DIR | E:/debug/install/Python/include | PATH |
| PARAVIEW_PLUGIN_ENABLE_debugPlugin | ON | BOOL |
| PARAVIEW_PLUGIN_ENABLE_DatasetIOPlugin | ON | BOOL |
| PARAVIEW_PLUGIN_ENABLE_LidarPlugin | ON | BOOL |
| PARAVIEW_PLUGIN_ENABLE_PythonQtPlugin | ON | BOOL |
| PYTHON_INCLUDE_DIR | E:/debug/install/Python/include | PATH |
| PYTHON_LIBRARY_RELEASE | E:/debug/install/Python/libs/python39.lib | FILEPATH |
| Python3_LIBRARY_RELEASE | E:/debug/install/Python/libs/python39.lib | FILEPATH |
| LV_BUILD_PLATFORM | Windows-AMD64 | STRING |
| PCAP_LIBRARY | E:/debug/lidarview-superbuild/common-superbuild/pcap/src/Lib/x64/wpcap.lib | FILEPATH |
| CMAKE_CONFIGURATION_TYPES | RelWithDebInfo | STRING |
输入上面的配置后依次点击Configure、Generate,完成后点击Open Project,即可打开LidarView的VS2017工程,可以正常调试,缺陷就是Windows的堆栈信息不那么好用,其实是RelWithDebInfo模式的锅,想要完美的调试信息得用Linux下的Debug版本

4 软件打包
请参考我的另一篇文章进行软件打包操作
5 Linux版上位机
Ubuntu20.04上面可以编译LidarView工程,配置流程可以模仿Windows版的配置,Linux版可以完美支持debug模式,只需要把SuperBuild里边的cmake文件改一下就得了
set(CMAKE_BUILD_TYPE "Debug")
set(WITH_STATIC_LASZIP OFF)
set(SUPERBUILD_ALLOW_DEBUG ON)
在Ubuntu里边用QtCreator直接打开cmake并配置步骤3中的环境变量即可(Linux的路径需要改一改)
参考
本人提交的issue:IDE Debug Problem (#37) · Issues · LidarView / LidarView · GitLab (kitware.com)
如果你在前面的步骤2成功编译了SuperBuild工程,也可以用这个issue里边的方法配置QtCreator调试
注意事项
- build的路径不能太深,否则很容易编译失败,解决办法参考文章
- 加速工具最好用上,否则太慢了
- 偶尔一两次莫名其妙的失败不算什么,多试几次就得了
- SuperBuild的编译版本一定要跟LidarView的一致
LidarView工程搭建指南的更多相关文章
- Windows下C,C++开发环境搭建指南
Windows下C,C++开发环境搭建指南 前情提要 基于近一段时间很多网友发邮件反馈,说一些项目编译出现问题,诸如此类的情况. 就觉得很有必要写一篇C,C++开发环境的小指南,统一回复. 1.君欲善 ...
- 某马-某淘商城的day01--->分析,工程搭建,tomcat插件启动工程,svn,反思
-1:为什么还要写某马的某淘商城呢? 答:万物更新,季节交替.新人总把旧人换.所以呢,前人写了N多遍的东西,我们依旧在学,所以下决心写某马的某淘商城.(也因为在学校还没找工作,所以找个相对长期的事情做 ...
- Django---框架简介和工程搭建
Django框架 一.Django介绍 二.Django工程搭建 回到顶部 一.Django介绍 1.简介 Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以 ...
- [转]OpenShift 集群搭建指南
转自:http://www.cnblogs.com/zhangning/p/7251810.html OpenShift 集群搭建指南 v1.0 搭建Hyper-v虚拟机或物理机 配置物理机静态IP, ...
- 单工程搭建springmvc+spring+mybatis(maven,idea)
单工程搭建springmvc+spring+mybatis(maven,idea) 1.pom.xml <properties> <project.build.sourceEncod ...
- Mybatis工程搭建
工程搭建 • 1依赖包 • 2配置文件 • 2.1spring-mybatis.xml • 2.2mybatis-config.xml自带配置文件 • 2.3 mapper(dao)对象 • 2.4 ...
- JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合
1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...
- JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建
1. 学习计划 1.电商行业的背景. 2.电商行业的技术特点 3.商城的介绍 a) 常用的名词介绍 b) 系统功能介绍 4.淘淘商城的系统架构 a) 传统架构 b) 分布式架构 c) 基于服务的架构 ...
- NTP搭建指南
NTP搭建指南 前言: NTP是网络时间协议(Network Time Protocol),用于全球的标准时间(UTC)的校正. 一般NTP 服务有不同的层次:一层是源头NTP 服务器,一层服务器都设 ...
- SpringBoot - 工程搭建
SpringBoot 简介 1.Spring 的封装.其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 2.SpringCloud 微服务的基础 搭建环境 jdk 1.8 + mave ...
随机推荐
- 力扣239(Java)- 滑动窗口最大值(困难)
题目: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回 滑动窗口中的最大值 . 示 ...
- 力扣48(java)-旋转图像(中等)
题目: 给定一个 n × n 的二维矩阵 matrix 表示一个图像.请你将图像顺时针旋转 90 度. 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要 使用另一个矩阵来旋转图像 ...
- 中仑网络全站 Dubbo 2 迁移 Dubbo 3 总结
简介: 中仑网络在 2022 年完成了服务框架从 Dubbo 2 到 Dubbo 3 的全站升级,深度使用了应用级服务发现.Kubernetes 原生服务部署.服务治理等核心能力.来自中仑网络的技术负 ...
- 喜马拉雅 Apache RocketMQ 消息治理实践
简介:本文通过喜马拉雅的RocketMQ治理实践分享,让大家了解使用消息中间件过程中可能遇到的问题,避免实战中踩坑. 作者:曹融,来自喜马拉雅,从事微服务和消息相关中间件开发. 本文通过喜马拉雅 ...
- 【阿里云 CDP 公开课】 第二讲:CDH/HDP 何去何从
简介:Hadoop社区版CDH/HDP已经不再更新,也将终止服务.后续的平台路线图怎么规划?Cloudera CDP整合了CDH和HDP,有哪些性能提升和功能增强?如何平滑的进行迁移?本文结合CDH ...
- Kubernetes 稳定性保障手册:洞察+预案
简介: 稳定性保障是个复杂的话题,需要有效.可迭代.可持续保障集群的稳定性,系统性的方法或许可以解决该问题. 作者 | 悟鹏来源 | 阿里巴巴云原生公众号 <Kubernetes 稳定性保障手册 ...
- 实时数仓入门训练营:实时计算 Flink 版 SQL 实践
简介: <实时数仓入门训练营>由阿里云研究员王峰.阿里云资深技术专家金晓军.阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭 ...
- [FAQ] Smart Contract: xxx has not been deployed to detected network (network/artifact mismatch)
在前端用 web3 与 contract 交互时,需要获取到已部署的 contract 实例进行操作,如果没有获取到就会报此错. 比如如下的 .deployed() 阶段: /* 伪代码 */ con ...
- 使用open webui+ollama部署本地大模型
使用open webui+ollama部署本地大模型 上次使用了angthingllm + ollama部署了本地大模型,详情见:https://www.cnblogs.com/jokingremar ...
- STM32的半主机与MicroLIB机制
一.半主机模式 半主机机制的作用 半主机是作用于ARM目标的一种机制,可以将来自STM32单片机应用程序的输入与输出请求传送至运行仿真器的PC主机上.使用此机制可以启用C库中的函数,如printf() ...