func main() target := "google.com" if len(os.Args) > 1 target = os.Args[1]
To build a (no console window), use:
go build -ldflags="-s -w" -o tool.exe You can also use UPX (Ultimate Packer for Executables) to shrink further, but stripped builds are usually enough. Go 1.20+ supports Windows 7 and later. Set environment variables for older compatibility: golang portable windows
Enter Go. When you run go build on Windows, you get one file . No *.dll files. No runtime/ folder. No installer.
package main import ( "fmt" "log" "os" "time" "net" ) func main() target := "google
Write a simple file renamer or log parser. Build it. Email the .exe to a friend on Windows. Watch them run it instantly. Have a favorite portable Go tool you’ve built? Share it below—I’d love to see what the community is making.
logFile, err := os.OpenFile("pings.log", os.O_APPEND When you run go build on Windows, you get one file
go build -ldflags="-H=windowsgui" Perfect for tray icons or background tools. Stripped Go binaries are 2–10 MB. For tiny tools, use: