How do I create an executable from Golang that doesn't open a console window when run?
我创建了一个我想在后台(无控制台)不可见地运行的应用程序。我该怎么做?
(适用于 Windows,在 Windows 7 Pro 64 位上测试)
网上找到的文档说我可以用类似的东西编译,
但这会报错:
使用更新的(1.1?)编译器版本,这应该可以工作:
当我继续搜索时,我发现了一个说明官方文档应该很快更新的注释,但同时有很多旧式示例回答了这个错误。
使用 Go 版本 1.4.2
1 | go build -ldflags"-H windowsgui" |
From the Go docs:
1 go build [-o output] [-i] [build flags] [packages]
-ldflags 'flag list' arguments to pass on each 5l, 6l, or 8l linker invocation.
- 去构建文档
- ldflags 文档
如果您不想在调试期间每次都输入冗长的构建指令,但仍希望控制台窗口消失,您可以在 main 函数的开头添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | package main import"github.com/gonutz/w32/v2" func main() { console := w32.GetConsoleWindow() if console != 0 { _, consoleProcID := w32.GetWindowThreadProcessId(console) if w32.GetCurrentProcessId() == consoleProcID { w32.ShowWindowAsync(console, w32.SW_HIDE) } } } |
现在您可以使用