176 lines
3.8 KiB
Markdown
176 lines
3.8 KiB
Markdown
# 客户端编译环境和第三方依赖说明
|
||
|
||
`thirdparty/` 是本机依赖目录,已经被 `.gitignore` 忽略,不会提交到 Git。
|
||
|
||
当前客户端构建依赖:
|
||
|
||
1. Qt 5.15.2 或兼容的 Qt 5 版本
|
||
2. OpenSSL
|
||
|
||
Windows 下推荐使用 Qt 5.15.2 msvc2019_64 和 OpenSSL-Win64;Linux 下使用系统安装的 Qt/OpenSSL 开发包。
|
||
|
||
先看结论:
|
||
|
||
- Windows:配置 Qt 环境变量,把 OpenSSL 复制到 `thirdparty/OpenSSL-Win64`。
|
||
- Linux:用 apt 安装 Qt/OpenSSL 开发包。
|
||
- `thirdparty/` 只放本机依赖,不提交 Git。
|
||
|
||
## 1. Qt 配置
|
||
|
||
### Windows
|
||
|
||
Qt 路径由本机环境变量提供。你需要在 Windows 环境变量里配置 Qt 路径,让 CMake 的 `find_package(Qt5 ...)` 能找到 Qt。
|
||
|
||
推荐配置用户环境变量 `CMAKE_PREFIX_PATH`:
|
||
|
||
```powershell
|
||
[Environment]::SetEnvironmentVariable("CMAKE_PREFIX_PATH", "C:\Qt\5.15.2\msvc2019_64", "User")
|
||
```
|
||
|
||
设置完成后,重新打开 PowerShell 或 Visual Studio。
|
||
|
||
如果只想对当前 PowerShell 窗口临时生效:
|
||
|
||
```powershell
|
||
$env:CMAKE_PREFIX_PATH="C:\Qt\5.15.2\msvc2019_64"
|
||
```
|
||
|
||
也可以配置更精确的 `Qt5_DIR`:
|
||
|
||
```powershell
|
||
[Environment]::SetEnvironmentVariable("Qt5_DIR", "C:\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5", "User")
|
||
```
|
||
|
||
`CMAKE_PREFIX_PATH` 和 `Qt5_DIR` 二选一即可,推荐使用 `CMAKE_PREFIX_PATH`。
|
||
|
||
一般不需要把 `C:\Qt\5.15.2\msvc2019_64\bin` 加入 `Path`。项目构建后会通过 `windeployqt` 复制运行所需的 Qt DLL。
|
||
|
||
### Linux
|
||
|
||
Linux 下需要安装 Qt5 开发包,让 CMake 能找到 `Qt5::Core`、`Qt5::Network`、`Qt5::Gui`、`Qt5::Widgets`。
|
||
|
||
Ubuntu/Debian 示例:
|
||
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install -y build-essential cmake qtbase5-dev qttools5-dev-tools libssl-dev
|
||
```
|
||
|
||
如果 Qt 安装在自定义目录,可以临时设置:
|
||
|
||
```bash
|
||
export CMAKE_PREFIX_PATH=/path/to/Qt/5.x/gcc_64
|
||
```
|
||
|
||
## 2. OpenSSL 配置
|
||
|
||
### Windows
|
||
|
||
OpenSSL 默认放在:
|
||
|
||
```text
|
||
thirdparty/OpenSSL-Win64
|
||
```
|
||
|
||
推荐目录结构:
|
||
|
||
```text
|
||
thirdparty/
|
||
OpenSSL-Win64/
|
||
include/
|
||
openssl/
|
||
lib/
|
||
VC/
|
||
x64/
|
||
MD/
|
||
MDd/
|
||
```
|
||
|
||
复制命令示例:
|
||
|
||
```powershell
|
||
cd C:\Users\admin\Desktop\update-client
|
||
mkdir thirdparty
|
||
Copy-Item "C:\Program Files\OpenSSL-Win64" ".\thirdparty\OpenSSL-Win64" -Recurse
|
||
```
|
||
|
||
如果 OpenSSL 不放在 `thirdparty/`,可以在配置 CMake 时手动指定:
|
||
|
||
```powershell
|
||
cmake -S . -B out\build\x64-Debug `
|
||
-G "Visual Studio 17 2022" `
|
||
-A x64 `
|
||
-DSIMCAE_OPENSSL_ROOT="C:\Program Files\OpenSSL-Win64"
|
||
```
|
||
|
||
### Linux
|
||
|
||
Linux 下 CMake 会通过 `find_package(OpenSSL REQUIRED)` 查找系统 OpenSSL。通常安装 `libssl-dev` 即可,不需要 `thirdparty/OpenSSL-Win64`。
|
||
|
||
## 3. Windows 重新配置和编译
|
||
|
||
如果之前配置过 CMake,建议先删除旧缓存:
|
||
|
||
```powershell
|
||
cd C:\Users\admin\Desktop\update-client
|
||
Remove-Item out\build -Recurse -Force
|
||
```
|
||
|
||
重新配置:
|
||
|
||
```powershell
|
||
cmake -S . -B out\build\x64-Debug `
|
||
-G "Visual Studio 17 2022" `
|
||
-A x64
|
||
```
|
||
|
||
编译:
|
||
|
||
```powershell
|
||
cmake --build out\build\x64-Debug --config Debug
|
||
```
|
||
|
||
## 4. Linux 重新配置和编译
|
||
|
||
如果之前配置过 CMake,建议先删除旧缓存:
|
||
|
||
```bash
|
||
cd ~/project/update-client
|
||
rm -rf out/build/linux-x64-debug out/build/linux-x64-release
|
||
```
|
||
|
||
Debug 构建:
|
||
|
||
```bash
|
||
cmake --preset linux-x64-debug
|
||
cmake --build --preset linux-x64-debug
|
||
```
|
||
|
||
Release 构建:
|
||
|
||
```bash
|
||
cmake --preset linux-x64-release
|
||
cmake --build --preset linux-x64-release
|
||
```
|
||
|
||
Linux 构建时会自动使用 `config/app_config.linux.example.json` 作为输出目录里的默认 `config/app_config.json`,可执行程序名不带 `.exe`。
|
||
|
||
## 5. 提交注意事项
|
||
|
||
不要提交下面这些内容:
|
||
|
||
```text
|
||
thirdparty/
|
||
.vs/
|
||
out/
|
||
build/
|
||
dist/
|
||
App/
|
||
*.exe
|
||
*.dll
|
||
*.lib
|
||
*.pdb
|
||
```
|
||
|
||
这些都属于本机依赖、构建产物或打包产物,不应该进 Git。
|