Mam następującą strukturę plików i katalogów kodu źródłowego:
└───workspace
├───main.go
└───mypkg
└───mypkg.go
main.go - program główny
mypkg\mypkg.go - lokalny pakiet
mypkg.go:
package mypkg
import "fmt"
func hello() {
fmt.Println("Hello, World!")
}
main.go:
package main
import "workspace/mypkg"
func main() {
mypkg.hello()
}
Chcę zaimportować lokalny pakiet mypkg według instrukcji na stronie linuxhint.com/golang-import-local-package
W katalogu workspace wykonuję polecenie:
go mod init workspace
Powstaje plik go.mod:
module workspace
go 1.19
Następnie wykonuję polecenie:
go build
i wywala błąd:
# workspace
.\main.go:7:8: undefined: mypkg.hello
Teoretycznie widzi lokalny pakiet, bo jak w main.go wpiszę import "workspace/aaa", to mam inny komunikat:
main.go:3:8: package workspace/aaa is not in GOROOT
Tak jakby nie widział funkcji hello(). Co robię nie tak?