我创建了一个我想在后台无形运行的应用程序(没有命令/ cmd控制台)。我该怎么做?
(适用于Windows,在Windows 7 Pro 64位上测试)
答案 0 :(得分:49)
在线发现的文档说我可以编写一些类似的内容,
go build -ldflags -Hwindowsgui filename.go
但这会产生错误:unknown flag -Hwindowsgui
对于更新的(1.1?)版本的编译器,这应该有效:
go build -ldflags -H=windowsgui filename.go
当我继续搜索时,我发现了一条说明官方文档应该很快更新的说明,但与此同时,有很多旧式的示例答案出现错误。
答案 1 :(得分:34)
使用Go Version 1.4.2
go build -ldflags "-H windowsgui"
来自Go文档:
传递每个5l,6l或8l链接器调用的go build [-o output] [-i] [build flags] [packages]
-ldflags 'flag list'
个参数。
答案 2 :(得分:8)
如果您不希望每次在调试期间键入长构建指令但仍希望控制台窗口消失,则可以在主函数的开头添加此代码:
package main
import "github.com/gonutz/w32"
func main() {
console := w32.GetConsoleWindow()
if console != 0 {
_, consoleProcID := w32.GetWindowThreadProcessId(console)
if w32.GetCurrentProcessId() == consoleProcID {
w32.ShowWindowAsync(console, w32.SW_HIDE)
}
}
}
现在您可以使用go build
进行编译。您的程序将在启动时显示控制台窗口,然后立即隐藏它。