Go Build Extension
🚀 一个功能丰富的VSCode插件,提供可视化的Go程序编译配置界面,让Go开发更加高效便捷!

✨ 功能特性
🎯 核心功能
- 🖥️ 可视化配置面板: 在VSCode底部面板提供图形化编译配置界面
- ⚡ 实时命令预览: 底部显示当前配置对应的完整Go编译命令
- 🔧 多种编译模式: 支持普通编译、调试模式、压缩体积等选项
- 🌍 交叉编译支持: 支持Windows、Linux、macOS、FreeBSD等目标系统
- 🏗️ 多架构支持: 支持AMD64、ARM64、386、ARM等目标架构
- 🏃 竞态检测: 内置Go race detector支持
- 🔗 CGO支持: 可切换CGO_ENABLED=0/1,支持纯Go编译和C库调用
- 🧠 智能冲突检测: 自动处理编译选项之间的冲突
- 📱 右键菜单集成: 在Go文件上右键可快速访问编译选项
📖 使用方法
🚀 快速开始
- 打开Go项目 - 在VSCode中打开包含Go代码的项目
- 打开编译面板 - 在VSCode底部面板找到"Go 编译配置"标签页
- 配置编译选项:
- 📁 输出目录: 设置编译输出路径(默认:
./bin )
- 📝 文件名: 设置输出文件名(可选,默认使用项目名)
- 🌍 目标系统: 选择Windows、Linux、macOS、FreeBSD
- 🏗️ 目标架构: 选择AMD64、ARM64、386、ARM
- ⚙️ 编译选项: 启用/禁用各种编译特性
- 预览命令 - 查看底部"当前命令"区域的实时命令预览
- 开始编译 - 点击"🔨 开始编译"按钮执行编译
🎮 快捷操作
- 右键菜单: 在
.go 文件上右键选择"显示编译选项"
- 命令面板: 按
Ctrl+Shift+P ,输入"Go Build"查看所有可用命令
- 快捷键: 可在VSCode设置中为常用命令配置快捷键
⚙️ 编译选项详解
🔧 基础选项
- 🚀 优化编译: 启用Go默认优化,提升运行性能(默认开启)
- 🏃 竞态检测: 启用Go race detector,检测并发竞态问题
- 🗜️ 压缩体积: 去除符号表和调试信息,显著减小文件体积
- 🔗 CGO支持: 控制CGO_ENABLED环境变量
- ✅ 启用CGO: 支持调用C代码和库
- ❌ 禁用CGO: 生成纯Go二进制文件,更好的可移植性
🌍 交叉编译支持
目标系统 |
支持架构 |
说明 |
Windows |
AMD64, 386, ARM64 |
生成.exe可执行文件 |
Linux |
AMD64, 386, ARM64, ARM |
适用于各种Linux发行版 |
macOS |
AMD64, ARM64 |
支持Intel和Apple Silicon |
FreeBSD |
AMD64, 386, ARM64, ARM |
Unix系统支持 |
📦 安装方法
🛒 从VSCode扩展商店安装(推荐)
- 打开VSCode
- 点击左侧活动栏的扩展图标(或按
Ctrl+Shift+X )
- 搜索"Go Build Extension"
- 点击"安装"按钮
- 重新加载VSCode
📁 从VSIX文件安装
- 下载最新的
.vsix 文件
- 在VSCode中按
Ctrl+Shift+P (Windows/Linux)或Cmd+Shift+P (Mac)
- 输入"Extensions: Install from VSIX"
- 选择下载的
.vsix 文件
- 重启VSCode
🔧 开发模式
# 克隆项目
git clone https://github.com/wangergou/vscode-go-build.git
cd vscode-go-build
# 安装依赖
npm install
# 编译TypeScript
npm run compile
# 在VSCode中按F5启动扩展开发主机
⚙️ 配置选项
🔧 扩展设置
在VSCode设置中可以配置以下选项:
{
// 默认输出目录
"goBuild.outputDir": "./bin",
// 是否显示编译通知
"goBuild.showNotifications": true
}
🎯 使用场景
🚀 日常开发
- 使用默认配置快速编译当前项目
- 启用竞态检测确保并发安全
- 使用CGO支持调用C库
🌍 部署发布
- 禁用CGO生成静态链接的可执行文件
- 启用压缩体积减小文件大小
- 交叉编译生成多平台版本
🐛 调试测试
- 启用竞态检测发现并发问题
- 保留调试信息便于问题定位
- 使用优化编译提升性能
🔍 常见问题
Q: 为什么交叉编译失败?
A: 确保目标平台支持所选架构,某些CGO依赖可能不支持交叉编译。
Q: 如何生成静态链接的可执行文件?
A: 禁用CGO支持(CGO_ENABLED=0)并启用压缩体积选项。
Q: 竞态检测影响性能吗?
A: 是的,竞态检测会显著降低性能,仅在开发和测试时使用。
🤝 贡献指南
欢迎提交Issue和Pull Request!
- Fork本项目
- 创建特性分支:
git checkout -b feature/amazing-feature
- 提交更改:
git commit -m 'Add amazing feature'
- 推送分支:
git push origin feature/amazing-feature
- 提交Pull Request
📄 许可证
本项目采用MIT许可证 - 查看LICENSE文件了解详情。
🙏 致谢
感谢所有为这个项目做出贡献的开发者!
如果这个扩展对你有帮助,请给个⭐️支持一下!
| |