181 lines
3.2 KiB
Markdown
181 lines
3.2 KiB
Markdown
# 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 .
|
||
```
|
||
|
||
这会启用调试符号和测试支持。
|
||
|
||
|
||
|