Jump to content

Go: Difference between revisions

From Smithnet Wiki
No edit summary
Line 36: Line 36:


* [https://github.com/alexflint/go-arg alexflint/go-arg]
* [https://github.com/alexflint/go-arg alexflint/go-arg]
* ?
* [https://github.com/pelletier/go-toml https://github.com/pelletier/go-toml]
* [https://github.com/shirou/gopsutil https://github.com/shirou/gopsutil]
* [https://github.com/dlclark/regexp2 https://github.com/dlclark/regexp2]

Revision as of 08:55, 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" .

To cross compile:

GOOS=windows GOARCH=amd64 go build -o disco_scan_updater.exe

Show available platforms:

go tool dist list

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.

Useful Packages