Utils 工具库模块
这是一个独立的 Qt 工具库模块,包含了项目中常用的基础工具类和实用功能。
模块结构
Utils/
├── VrCommon/ # 核心接口和数据结构
│ ├── Inc/ # 公共头文件
│ │ ├── VrCommon.h
│ │ ├── VrConfigCmd.h
│ │ └── VrError.h
│ └── Src/ # 源文件
│
├── VrUtils/ # 工具类库
│ ├── Inc/ # 工具类头文件
│ ├── Src/ # 工具类源文件
│ ├── jsoncpp/ # JSON 解析库
│ ├── log4cpp/ # 日志库
│ ├── tinyxml2/ # XML 解析库
│ ├── ini/ # INI 配置文件解析
│ ├── MD5/ # MD5 加密
│ └── crc/ # CRC 校验
│
├── CloudUtils/ # 点云工具
│ ├── Inc/
│ │ ├── LaserDataLoader.h
│ │ └── PointCloudImageUtils.h
│ └── Src/
│
├── DataUtils/ # 数据处理工具
│ ├── CloudMathClac/ # 点云数学计算
│ └── CoordinateTransform/ # 坐标转换
│
└── CloudView/ # 点云查看工具(独立应用)
├── Inc/
├── Src/
└── resource/
构建说明
作为子模块构建
在主项目的 .pro 文件中添加:
Utils.file = ../Utils/Utils.pro
SUBDIRS += Utils
# 设置依赖关系
YourModule.depends = Utils
独立构建
cd Utils
qmake Utils.pro
make
模块说明
VrCommon
核心接口和数据结构定义,包括:
- 配置接口定义
- 错误码定义
- 配置命令数据结构
VrUtils
通用工具类库,包括:
- 日志工具: 基于 log4cpp 的日志系统
- JSON 解析: jsoncpp 库
- XML 解析: tinyxml2 库
- INI 配置: SimpleIni 库
- 加密工具: MD5、CRC 校验
- 时间工具: 时间格式化、NTP 同步
- 网络工具: 网络相关实用函数
- 文件工具: 文件操作相关函数
- 字符串工具: 字符串处理函数
CloudUtils
点云数据处理工具,包括:
- 激光数据加载器
- 点云图像转换工具
DataUtils
数据处理工具集,包括:
- CloudMathClac: 点云数学计算(曲线拟合等)
- CoordinateTransform: 坐标系转换工具
CloudView
点云可视化查看工具(独立应用程序)
使用示例
在项目中引用
# 包含路径
INCLUDEPATH += $$PWD/../Utils/VrCommon/Inc
INCLUDEPATH += $$PWD/../Utils/VrUtils/Inc
# 链接库
win32:CONFIG(release, debug|release): {
LIBS += -L$$PWD/../Utils/VrCommon/release -lVrCommon
LIBS += -L$$PWD/../Utils/VrUtils/release -lVrUtils
}
else:win32:CONFIG(debug, debug|release): {
LIBS += -L$$PWD/../Utils/VrCommon/debug -lVrCommon
LIBS += -L$$PWD/../Utils/VrUtils/debug -lVrUtils
}
else:unix:!macx {
LIBS += -L$$PWD/../Utils/VrCommon -lVrCommon
LIBS += -L$$PWD/../Utils/VrUtils -lVrUtils
}
依赖关系
- VrUtils 依赖 VrCommon
- CloudUtils 依赖 VrCommon 和 VrUtils
- DataUtils 依赖 VrCommon
- CloudView 依赖 VrCommon、VrUtils 和 CloudUtils
编译要求
- Qt 5.x 或更高版本
- C++11 或更高版本
- 支持平台:Windows (MSVC/MinGW)、Linux (ARM/x86_64)
许可证
内部项目使用
Description
Languages
C++
87.7%
C
11.4%
QMake
0.8%