构建选项
构建选项用于配置项目的编译和打包参数,通过 设置 > 构建选项(快捷键 Ctrl+F9 / macOS Cmd+F9)打开。
构建选项分为两个标签页:基础配置(编译设置)和打包配置(安装包设置)。
基础配置
目标平台
选择需要编译的目标操作系统,可多选:
| 平台 | 说明 | 默认值 |
|---|---|---|
| windows | 编译 Windows 可执行文件 | 开启 |
| macOS | 编译 macOS 可执行文件 | 开启 |
| linux | 编译 Linux 可执行文件 | 开启 |
目标架构
选择需要编译的 CPU 架构,可多选:
| 架构 | 说明 | 默认值 | 平台限制 |
|---|---|---|---|
| amd64 | 64 位 x86 架构 | 开启 | 无 |
| 386 | 32 位 x86 架构 | 开启 | macOS 不支持 |
| arm64 | 64 位 ARM 架构 | 开启 | Windows 不支持 |
| arm | 32 位 ARM 架构 | 开启 | Windows 和 macOS 不支持 |
| loong64 | 龙芯 64 位架构 | 关闭(暂不可用) | 暂不支持 |
UI 框架
选择各平台使用的 UI 渲染框架:
| 框架 | 说明 | 默认值 | 备注 |
|---|---|---|---|
| ✱Win32 | Windows 原生 UI 框架 | 开启(固定) | Windows 平台必须启用 |
| ✱Cocoa | macOS 原生 UI 框架 | 开启(固定) | macOS 平台必须启用 |
| GTK2 | Linux GTK2 UI 框架 | 开启 | 适用于 LCL 原生渲染 |
| GTK3 | Linux GTK3 UI 框架 | 视项目而定 | 适用于 LCL + WebView/CEF 混合渲染 |
输出设置
| 配置项 | 说明 | 输入类型 | 默认值 |
|---|---|---|---|
| 输出目录 | 编译输出文件的存放目录 | 文本输入 + 目录选择器 | ./build |
| 可执行文件名称 | 编译生成的可执行文件名 | 文本输入 | 项目名称 |
编译模式
编译模式为单选,二选一:
| 模式 | 说明 | 默认值 |
|---|---|---|
| 调试模式 (Debug) | 保留调试信息,不优化,适合开发调试 | 默认选中 |
| 发布模式 (Release) | 去除调试信息(-s -w),启用优化(-trimpath),Windows 下隐藏控制台窗口(-H windowsgui) | - |
CGO 设置
| 配置项 | 说明 | 输入类型 | 默认值 |
|---|---|---|---|
| 已启用 CGO / 已关闭 CGO | 是否启用 CGO(C 语言调用接口) | 复选框 | 启用 |
| 构建其它平台 | 关闭 CGO 后,可交叉编译其它平台的可执行文件 | 复选框(CGO 启用时禁用) | 关闭 |
说明:
- 启用 CGO 时只能编译当前平台的可执行文件
- 关闭 CGO 后可交叉编译 Windows、Linux、macOS 的可执行文件
- 使用
energy build --all命令时会自动禁用 CGO
构建参数
| 配置项 | 说明 | 输入类型 | 默认值 |
|---|---|---|---|
| 构建参数 | 传递给 go build 的额外参数 | 文本输入 | 空 |
参数格式示例:
-tags prod -ldflags "-X main.version=1.0"支持的参数类型:
-tags- 构建标签(如prod、dev)-ldflags- 链接器标志(如-s -w)
反编译保护(开发中)
| 配置项 | 说明 | 默认值 | 状态 |
|---|---|---|---|
| 代码混淆 | 对编译后的二进制进行代码混淆 | 关闭 | 暂不可用 |
| 禁止调试 | 防止对应用程序进行调试 | 关闭 | 暂不可用 |
打包配置
打包配置用于设置安装包的生成参数。详见 打包发布。
各平台输出文件格式
| 平台 | 输出文件格式 | 特殊处理 |
|---|---|---|
| Windows | build/<name>.exe | Release 模式自动添加 -H windowsgui |
| macOS | build/<name>.app | 自动创建 .app 包结构 |
| Linux | build/<name> | Release 模式自动执行 strip |
跨平台构建
使用 energy build --all 或关闭 CGO 并勾选"构建其它平台"时,会依次构建以下平台组合:
| 目标平台 | 目标架构 |
|---|---|
| Windows | amd64, 386 |
| macOS | amd64, arm64 |
| Linux | amd64, 386, arm, arm64 |
跨平台构建的输出文件名自动追加平台和架构后缀,如 myapp_windows_amd64.exe。