# DrinkCpp **Repository Path**: yumoz/drink-cpp ## Basic Information - **Project Name**: DrinkCpp - **Description**: 跨平台的CPP相关内容 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-03 - **Last Updated**: 2026-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DrinkCpp ## 介绍 跨平台的C++学习与实践项目,涵盖C++基础知识、算法实现、数学库应用等内容。支持在Linux、Windows、macOS等多个平台编译运行。 ## 项目结构 项目采用标准化的目录结构,按照功能模块进行组织: ``` drink-cpp/ ├── app/ # 可执行应用程序 │ ├── basic_demo/ # C++基础示例 │ ├── line_math/ # 线性数学库示例 │ ├── main/ # 主程序入口 │ ├── math_cpp/ # 数学C++示例 │ ├── proto_demo/ # Protobuf序列化示例 │ ├── spp_demo/ # SP++数学库演示 │ └── tools_demo/ # 工具库示例 ├── tests/ # 测试代码 │ └── spp_test/ # SP++库测试 ├── sdk/ # SDK/库代码 │ ├── spp/ # SP++数学库 │ └── yu_math/ # YuMath数学库 ├── plugins/ # 插件代码(待扩展) ├── 3rd/ # 第三方库 ├── CMakeLists.txt # 根CMake配置 └── README.md ``` ## 目录说明 | 目录 | 用途 | 说明 | |------|------|------| | `app/` | 应用程序 | 包含多个独立的可执行程序示例 | | `tests/` | 测试代码 | 单元测试和集成测试 | | `sdk/` | SDK/库 | 核心库和工具库 | | `plugins/` | 插件 | 扩展插件模块 | | `3rd/` | 第三方库 | 外部依赖库(如SP++3.0) | ## 内容模块 ### 1. C++基础知识 (`app/basic_demo/`) - 基础语法测试 - C++特性演示 - 平台相关代码示例 ### 2. 数学库应用 - **SP++库** (`app/spp_demo/`, `sdk/spp/`): 信号处理数学库 - 矩阵运算 - FFT变换 - 滤波器设计 - 统计分析 - **线性代数** (`app/line_math/`): - BLAS/CBLAS示例 - LAPACK示例 - Eigen示例 - Armadillo示例 - FFTW3示例 ### 3. 跨平台开发 (`app/math_cpp/`) - 动态库/静态库编译 - 跨平台API封装 - 条件编译示例 ### 4. 序列化 (`app/proto_demo/`) - Protobuf序列化/反序列化 - 数据结构设计 ### 5. 工具库 (`app/tools_demo/`) - 常用工具函数 - 平台抽象层 - 测试工具 ## 构建要求 ### 环境要求 - **CMake**: 3.10 或更高版本 - **C++标准**: C++11/C++17(部分模块需要) - **编译器**: - GCC 7+ (Linux) - Clang 10+ (macOS) - MSVC 2017+ (Windows) ### 可选依赖 以下库为可选依赖,如未安装,相关示例将自动跳过: - **Eigen3**: 线性代数库 - **Armadillo**: 矩阵运算库 - **FFTW3**: 快速傅里叶变换库 - **CBLAS/LAPACK**: 线性代数计算库 - **Protobuf**: 序列化库(需要C++17) ## 构建步骤 ### 1. 克隆仓库 ```bash git clone cd drink-cpp ``` ### 2. 创建构建目录 ```bash mkdir build cd build ``` ### 3. 配置项目 ```bash cmake .. # 或使用特定构建类型 cmake -DCMAKE_BUILD_TYPE=Release .. ``` ### 4. 编译项目 ```bash make -j$(nproc) # Linux/macOS # 或 cmake --build . --parallel # 跨平台 ``` ### 5. 运行示例 ```bash ./bin/main_app_d ./bin/spp_demo_d ./bin/spp_test_d ``` ## 支持平台 - ✅ **Windows 10/11** (Visual Studio 2017+) - ✅ **Linux** (Ubuntu 18.04+, Kylin, CentOS 7+) - ✅ **macOS** (10.14+, Apple Silicon/Intel) ## 项目特点 1. **模块化设计**: 清晰的目录结构,便于维护和扩展 2. **跨平台支持**: 一套代码,多平台编译运行 3. **条件编译**: 自动检测依赖库,优雅处理缺失依赖 4. **CMake构建**: 现代化的构建系统,支持多种IDE 5. **丰富示例**: 涵盖C++基础、数学计算、序列化等多个领域 ## 贡献指南 欢迎提交Issue和Pull Request! ## 许可证 本项目仅供学习交流使用。 ## 联系方式 如有问题或建议,欢迎通过Issue联系。