158 lines
4.2 KiB
Markdown
158 lines
4.2 KiB
Markdown
# SimpleRemoter 编译脚本
|
||
|
||
命令行编译脚本,支持完整编译和增量编译。
|
||
|
||
## 环境要求
|
||
|
||
- Visual Studio 2019 或 2022
|
||
- v142 工具集 (MSVC v142 - VS 2019 C++ build tools)
|
||
- MFC 库 (C++ MFC for v142 build tools)
|
||
|
||
脚本自动检测以下 VS 安装路径:
|
||
- `C:\Program Files\Microsoft Visual Studio\18\*` (VS2019 Insiders)
|
||
- `C:\Program Files*\Microsoft Visual Studio\2019\*`
|
||
- `C:\Program Files*\Microsoft Visual Studio\2022\*`
|
||
|
||
## 脚本文件
|
||
|
||
| 文件 | 说明 |
|
||
|------|------|
|
||
| `build.ps1` | PowerShell 主脚本 |
|
||
| `build.cmd` | 批处理快捷入口 |
|
||
|
||
## 命令参数
|
||
|
||
### PowerShell (`build.ps1`)
|
||
|
||
```powershell
|
||
.\build.ps1 [-Config <配置>] [-Platform <平台>] [-ServerOnly] [-Clean] [-Publish]
|
||
```
|
||
|
||
| 参数 | 可选值 | 默认值 | 说明 |
|
||
|------|--------|--------|------|
|
||
| `-Config` | `Release`, `Debug` | `Release` | 编译配置 |
|
||
| `-Platform` | `x64`, `x86`, `all` | `x64` | 目标平台 |
|
||
| `-ServerOnly` | 开关 | 否 | 仅编译主控程序,跳过依赖项 |
|
||
| `-Clean` | 开关 | 否 | 清理后重新编译 |
|
||
| `-Publish` | 开关 | 否 | 发版模式:重编译所有 + UPX 压缩 |
|
||
|
||
### 批处理 (`build.cmd`)
|
||
|
||
```cmd
|
||
build [release|debug] [x64|x86|all] [server|clean|publish]
|
||
```
|
||
|
||
- 参数顺序任意
|
||
- 不区分大小写
|
||
|
||
## 使用示例
|
||
|
||
### PowerShell
|
||
|
||
```powershell
|
||
# 完整编译 (Release x64)
|
||
.\build.ps1
|
||
|
||
# 编译 x86 + x64 两个平台
|
||
.\build.ps1 -Platform all
|
||
|
||
# Debug 模式编译
|
||
.\build.ps1 -Config Debug
|
||
|
||
# 仅编译主控程序 (跳过依赖项,适合快速重编译)
|
||
.\build.ps1 -ServerOnly
|
||
|
||
# 清理后重新编译
|
||
.\build.ps1 -Clean
|
||
|
||
# 组合使用
|
||
.\build.ps1 -Config Debug -Platform all -Clean
|
||
```
|
||
|
||
### 批处理
|
||
|
||
```cmd
|
||
build # 完整编译 Release x64
|
||
build server # 仅主控程序
|
||
build debug x86 # Debug x86
|
||
build release all clean # 清理后编译所有平台
|
||
build publish # 发版模式
|
||
```
|
||
|
||
## 编译流程
|
||
|
||
### 完整编译 (默认)
|
||
|
||
```
|
||
Step 1: 编译客户端项目 (始终 Release, x86 + x64)
|
||
├── ServerDll.dll ← ClientDll_vs2015.vcxproj
|
||
├── ghost.exe ← ghost_vs2015.vcxproj
|
||
├── TestRun.exe ← TestRun_vs2015.vcxproj
|
||
├── TinyRun.dll ← TinyRun.vcxproj
|
||
└── SCLoader.exe ← SCLoader.vcxproj
|
||
|
||
Step 2: 编译主控程序 (使用 -Config 指定的配置)
|
||
└── Yama.exe ← 2015Remote_vs2015.vcxproj
|
||
```
|
||
|
||
**注意:** 客户端项目始终使用 Release 模式编译,因为主控程序资源中引用的是 `Release\` 目录下的文件。`-Config Debug` 只影响主控程序本身。
|
||
|
||
主控程序 Yama 会将 Step 1 编译的 DLL/EXE 内嵌到资源中,因此**首次编译必须执行完整编译**。
|
||
|
||
### 发版模式 (-Publish)
|
||
|
||
```
|
||
Step 1: 重新编译所有客户端项目 (Release x86 + x64)
|
||
Step 2: 重新编译主控程序 (Release x64)
|
||
Step 3: UPX 压缩 (upx --best Yama_x64.exe)
|
||
```
|
||
|
||
发版模式会:
|
||
- 强制 Release x64 配置
|
||
- 强制 Clean 重新编译(确保所有文件是最新的)
|
||
- 使用 UPX 压缩最终输出(约 70% 压缩率)
|
||
|
||
UPX 路径:`server/2015Remote/res/3rd/upx.exe`
|
||
|
||
### 仅主控 (-ServerOnly)
|
||
|
||
跳过 Step 1,直接编译 Yama。适用于:
|
||
- 依赖项已编译完成
|
||
- 仅修改了主控程序代码
|
||
|
||
## 输出文件
|
||
|
||
| 平台 | 输出路径 |
|
||
|------|---------|
|
||
| x64 | `Bin\Yama_x64.exe` |
|
||
| x86 | `Bin\Yama_x86.exe` |
|
||
|
||
客户端项目输出:
|
||
|
||
| 项目 | x86 输出 | x64 输出 |
|
||
|------|---------|---------|
|
||
| ServerDll | `Release\ServerDll.dll` | `x64\Release\ServerDll.dll` |
|
||
| ghost | `Release\ghost.exe` | `x64\Release\ghost.exe` |
|
||
| TestRun | `Release\TestRun.exe` | `x64\Release\TestRun.exe` |
|
||
| TinyRun | `Release\TinyRun.dll` | `x64\Release\TinyRun.dll` |
|
||
| SCLoader | `Release\SCLoader.exe` | `x64\Release\SCLoader.exe` |
|
||
|
||
## 常见问题
|
||
|
||
### v142 build tools cannot be found
|
||
|
||
安装 VS2019 构建工具:
|
||
1. 打开 Visual Studio Installer
|
||
2. 修改 VS2022 或安装 VS2019
|
||
3. 勾选 `MSVC v142 - VS 2019 C++ x64/x86 build tools`
|
||
|
||
### MFC libraries are required
|
||
|
||
安装 MFC 库:
|
||
1. 打开 Visual Studio Installer
|
||
2. 勾选 `C++ MFC for v142 build tools (x86 and x64)`
|
||
|
||
### MSBuild not found
|
||
|
||
确保安装了 Visual Studio 2019 或 2022,且包含 C++ 桌面开发工作负载。
|