Go: runtime.main_main·f: function main is undeclared in the main package
The package is named main but contains no func main(), or you tried to build a library as an executable.
function main is undeclared in the main packageruntime.main_main·f: function main is undeclared in the main packagego run: cannot run non-main packagepackage command-line-arguments is not a main package Meaning
An executable needs package main with func main(). Libraries should use another package name. This error often appears when running go run in a directory containing only library code, or when main has the wrong signature or is in a _test.go file.
Common causes
- No func main() defined
- Package name main in a library directory
- func main in a file excluded by build tags
- Typo
func Main() - Running go run in the wrong folder
⚡ Quick fix
- Add
func main() {}in package main - Rename the package for libraries
- Run from the correct directory:
go run ./cmd/app
Detailed fix by platform
Go
go build ./cmd/serverfor a repo with multiple commands
How to diagnose
- Package — main or library?
- Function — main() exists?
- Directory — Correct?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- assignment mismatch: 1 variable but f returns 2 values Go: assignment mismatch: 1 variable but os.Open returns 2 values
- cannot assign to struct field m[k].f in map Go: cannot assign to struct field users["bob"].Age in map
- cannot refer to unexported name Go: cannot refer to unexported name pkg.helper (undefined: pkg.helper)
Most viewed in Go
Other ways to find it
Where this error sits
Origin: Application & API. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026