I have a sample project setup based on this article.
This is my directory structure:
goloang/
└── fooproject
└── src
├── foo
│ └── foo.go
└── fooer
└── fooer.go
I have set the GOTPATH
$ echo $GOPATH
/Users/Bharat/Dev/golang/fooproject
I am trying to run foor.go
but I get a cannot find package error even though it exists in the location referenced by GOPATH
i.e. in src/foo
.
This is how I am running it:
$ pwd
/Users/Bharat/Dev/goloang/fooproject/src/fooer
$ go run fooer.go
fooer.go:4:3: cannot find package "foo" in any of:
/usr/local/go/src/foo (from $GOROOT)
/Users/Bharat/Dev/golang/fooproject/src/foo (from $GOPATH)
These are the file contents.
src/foo/foo.go
:
package foo
import (
"fmt"
)
func Bar() {
fmt.Println("bar")
}
src/fooer/fooer.go
:
package main
import (
"foo"
)
func main() {
foo.Bar()
}
I get the same error when I try to do go build fooer.go
.
Where am I going wrong with the project structure?