暂存文件
This commit is contained in:
180
BUILD_GUIDE.md
Normal file
180
BUILD_GUIDE.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# 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 .
|
||||
```
|
||||
|
||||
这会启用调试符号和测试支持。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user