# DisplayFlow 构建指南 ## 前置要求 ### 通用要求 - CMake 3.15 或更高版本 - C++17 兼容的编译器 - Git(用于下载依赖) ### Windows - Visual Studio 2019 或更高版本 - Windows SDK 10.0.19041.0 或更高版本 ### Android - Android NDK r21 或更高版本 - Android Studio(可选,用于开发) ### Linux/macOS - GCC 7+ 或 Clang 8+ - pkg-config(如果启用 VP8 编解码器) ## 快速开始 ### Windows ```batch # 使用构建脚本 scripts\build.bat Release # 或手动构建 mkdir build cd build cmake .. -G "Visual Studio 16 2019" -A x64 cmake --build . --config Release ``` ### Linux/macOS ```bash # 使用构建脚本 chmod +x scripts/build.sh ./scripts/build.sh Release # 或手动构建 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build . -j$(nproc) ``` ### Android ```bash # 设置 Android NDK 路径 export ANDROID_NDK=/path/to/android-ndk # 创建构建目录 mkdir build-android cd build-android # 配置 CMake cmake .. \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DANDROID_ABI=arm64-v8a \ -DANDROID_PLATFORM=android-21 \ -DCMAKE_BUILD_TYPE=Release # 编译 cmake --build . ``` ## 构建选项 ### 主要选项 - `BUILD_TESTS`: 构建测试(默认: OFF) ```bash cmake .. -DBUILD_TESTS=ON ``` - `BUILD_SHARED_LIBS`: 构建共享库(默认: OFF) ```bash cmake .. -DBUILD_SHARED_LIBS=ON ``` - `ENABLE_VP8_CODEC`: 启用 VP8 编解码器支持(默认: OFF) ```bash cmake .. -DENABLE_VP8_CODEC=ON ``` - `USE_SYSTEM_FLATBUFFERS`: 使用系统安装的 FlatBuffers(默认: OFF) ```bash cmake .. -DUSE_SYSTEM_FLATBUFFERS=ON ``` ### 依赖管理 项目使用 CMake FetchContent 自动下载依赖。主要依赖包括: - **FlatBuffers**: 自动下载(或使用系统版本) - **Google Test**: 仅在 `BUILD_TESTS=ON` 时下载 - **libvpx**: 仅在 `ENABLE_VP8_CODEC=ON` 时查找 ### 使用 vcpkg(可选) 如果使用 vcpkg 管理依赖: ```bash # 安装 vcpkg git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh # Linux/macOS # 或 .\bootstrap-vcpkg.bat # Windows # 安装依赖 ./vcpkg install flatbuffers # 配置 CMake 使用 vcpkg cmake .. -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake ``` ## 运行测试 ```bash # 在构建目录中 ctest # 或运行特定测试 ctest -R test_network_interface # 详细输出 ctest --verbose ``` ## 输出目录 构建输出位于: - 可执行文件: `build/bin/` - 库文件: `build/lib/` - 测试: `build/tests/` ## 常见问题 ### CMake 找不到编译器 **Windows**: 确保 Visual Studio 已安装,并在 Visual Studio 开发者命令提示符中运行。 **Linux**: 安装构建工具: ```bash sudo apt-get install build-essential # Ubuntu/Debian ``` ### Android 构建失败 确保设置了正确的 Android NDK 路径: ```bash export ANDROID_NDK=/path/to/android-ndk ``` ### 依赖下载失败 检查网络连接,或使用代理: ```bash export https_proxy=http://proxy.example.com:8080 ``` ## 开发模式 对于开发,建议使用 Debug 模式: ```bash cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON cmake --build . ``` 这会启用调试符号和测试支持。