# 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 文件中添加: ```qmake Utils.file = ../Utils/Utils.pro SUBDIRS += Utils # 设置依赖关系 YourModule.depends = Utils ``` ### 独立构建 ```bash cd Utils qmake Utils.pro make ``` ## 模块说明 ### VrCommon 核心接口和数据结构定义,包括: - 配置接口定义 - 错误码定义 - 配置命令数据结构 ### VrUtils 通用工具类库,包括: - **日志工具**: 基于 log4cpp 的日志系统 - **JSON 解析**: jsoncpp 库 - **XML 解析**: tinyxml2 库 - **INI 配置**: SimpleIni 库 - **加密工具**: MD5、CRC 校验 - **时间工具**: 时间格式化、NTP 同步 - **网络工具**: 网络相关实用函数 - **文件工具**: 文件操作相关函数 - **字符串工具**: 字符串处理函数 ### CloudUtils 点云数据处理工具,包括: - 激光数据加载器 - 点云图像转换工具 ### DataUtils 数据处理工具集,包括: - **CloudMathClac**: 点云数学计算(曲线拟合等) - **CoordinateTransform**: 坐标系转换工具 ### CloudView 点云可视化查看工具(独立应用程序) ## 使用示例 ### 在项目中引用 ```qmake # 包含路径 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) ## 许可证 内部项目使用