如何从Golang创build一个可执行文件,在运行时不会打开命令(cmd)窗口?

我创build了一个应用程序,我想在后台运行隐式(无命令/ CMD控制台)。 我该怎么做呢?

(这是用于Windows,在Windows 7 Pro 64位testing)

在网上find的文件说,我可以编写一些沿线的东西,

go build -ldflags -Hwindowsgui filename.go

但是这给了一个错误: unknown flag -Hwindowsgui

使用更新的(1.1?)版本的编译器,这应该工作:

go build -ldflags -H=windowsgui filename.go

当我继续四处寻找时,我发现一个说明官方文档应该尽快更新,但是同时有很多老式的例子,那里有错误的答案。

使用Go版本1.4.2

  go build -ldflags "-H windowsgui" 

从Go文档:

 go build [-o output] [-i] [build flags] [packages] 

-ldflags 'flag list'parameter passing给每个5l,6l或8l链接器调用。

  • 去build立文件
  • ldflags文档

如果您不想在debugging过程中每次input较长的构build指令,但仍希望控制台窗口消失,则可以在主函数的开头添加以下代码:

 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 。 您的程序将在启动时显示控制台窗口,然后立即隐藏它。