Go: Difference between revisions
Appearance
NickPGSmith (talk | contribs) No edit summary |
NickPGSmith (talk | contribs) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 41: | Line 41: | ||
Add resources: | Add resources: | ||
* Edit winres/winres.json (icon reference: RT_GROUP_ICON) | |||
* Add winres/icon.png (s single high resolution PNG will be rescaled automatically | |||
Make syso resources, and build into binary: | Make syso resources, and build into binary: | ||
Latest revision as of 09:03, 3 March 2026
Building and Packages
go run test.go go build test.go
If there are multiple files in the main package, must make go access all of them:
go run . go build .
To remove debug symbols:
go build -ldflags="-s -w" .
In multi-file projects, main.go is the convention. The binary name is taken from the project directory.
gofmt -w . gofmt -d test.go
Initialise project, create go.mod file:
go mod init example-project
Download, and add reference to go.mod file:
go get github.com/alexflint/go-arg
Ensure go.mod is in sync with code imports:
go mod tidy
Note the go.sum file that contains anti-tampering checksums.
To cross compile:
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -trimpath -o disco_scan_updater GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -trimpath -o disco_scan_updater.exe
Show available platforms:
go tool dist list
Windows Executables with winres
To add icons and version details:
go install github.com/tc-hib/go-winres@latest ~/go/bin/go-winres init
Add resources:
- Edit winres/winres.json (icon reference: RT_GROUP_ICON)
- Add winres/icon.png (s single high resolution PNG will be rescaled automatically
Make syso resources, and build into binary:
~/go/bin/go-winres make go build