Files
Meshray-Manager/README-Windows-GUI.md
2026-06-30 15:14:37 +08:00

167 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MeshRay Windows 无控制台窗口版本 - 快速指南
**更新时间**: 2026-03-24
**编译参数**: `-ldflags "-s -w -H=windowsgui"`
---
## 🚀 **快速编译**
### 方法一:一键编译(推荐)
在项目根目录执行:
```bash
go build -o meshray.exe -ldflags "-s -w -H=windowsgui" ./cmd/meshray
```
**效果**:
- ✅ 不显示控制台窗口
- ✅ 系统托盘图标正常
- ✅ 文件体积优化(约 31 MB
---
### 方法二:使用批处理脚本
双击运行 `build.bat`,自动完成编译。
**注意**: 如果遇到编码问题,请使用方法一手动编译。
---
## ✅ **验证结果**
### 1. 检查文件大小
```bash
ls meshray.exe
# 应该约 31 MB
```
---
### 2. 运行测试
**双击运行** `meshray.exe`
**预期效果**:
- ✅ 没有黑色控制台窗口弹出
- ✅ 系统托盘出现 MeshRay 图标
- ✅ 可以通过托盘菜单操作
**❌ 如果看到控制台窗口**:
- 可能忘记添加 `-H=windowsgui` 参数
- 可能运行了旧版本程序
---
## 🔧 **参数说明**
| 参数 | 作用 | 效果 |
|------|------|------|
| `-s` | 去除符号表 | 减小文件大小 |
| `-w` | 去除 DWARF 调试信息 | 减小文件大小 |
| `-H=windowsgui` | **关键** - 设置为 Windows GUI 子系统 | 隐藏控制台窗口 |
---
## 📊 **对比**
| 编译方式 | 文件大小 | 控制台窗口 | 适用场景 |
|----------|----------|------------|----------|
| 无参数 | ~38 MB | ❌ 显示 | 开发调试 |
| `-s -w` | ~32 MB | ❌ 显示 | 开发调试 |
| `-s -w -H=windowsgui` | ~31 MB | ✅ 隐藏 | **正式发布** ✨ |
---
## 💡 **常见问题**
### Q: 隐藏控制台后如何查看日志?
**A**: 有三种方式:
1. **查看日志文件**:
```bash
Get-Content logs\meshray.log -Tail 50
```
2. **通过系统托盘**:
- 右键点击托盘图标
- 选择 "打开日志"
3. **实时监控**:
```bash
tail -f logs\meshray.log
```
---
### Q: 程序崩溃了怎么办?
**A**:
1. **重新编译为 Debug 模式**:
```bash
go build -o meshray-debug.exe ./cmd/meshray
```
2. **查看日志文件**:
```bash
Get-Content logs\meshray.log -Tail 100
```
---
## 📝 **完整构建流程**
```bash
# Step 1: 编译前端
cd web
npm run build
cd ..
# Step 2: 清理缓存
go clean -cache
# Step 3: 编译(带 windowsgui
go build -o meshray.exe -ldflags "-s -w -H=windowsgui" ./cmd/meshray
# Step 4: 嵌入图标(可选但推荐)
go-winres patch --in build\winres.json meshray.exe
# Step 5: 验证
(Get-Item meshray.exe).VersionInfo | Format-List
```
---
## 🎯 **最佳实践**
### 开发环境
```bash
# 保留控制台输出,方便看日志
go build -o meshray.exe ./cmd/meshray
```
### 生产环境
```bash
# 隐藏控制台,优化体积
go build -o meshray.exe -ldflags "-s -w -H=windowsgui" ./cmd/meshray
```
---
## 📚 **相关文档**
- [Windows GUI 程序编译配置指南.md](./Windows%20GUI 程序编译配置指南.md) - 详细说明
- [路由注册顺序检查清单.md](./路由注册顺序检查清单.md) - 防止路由顺序错误
---
**状态**: ✅ **已配置**
**编译命令**: `go build -o meshray.exe -ldflags "-s -w -H=windowsgui" ./cmd/meshray`
*MeshRay - 注重用户体验,从细节开始!* ✨🪟