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