Примечание: это не спрашивает Почему функции, определенные в других "основных" пакетах, не распознаются? .
У меня есть проект со следующей структурой:
go / src / github.com / me / project / cmd / web / main.go
# main.go
package main
import(
"github.com/me/myproject/internal/myproject"
)
void main() {
// ...
}
go / src / github.com / me /project / cmd / web / handlers.go
# handlers.go
package main
void someFunc() {
// ...
}
И я успешно компилирую и запускаю:
go run ./cmd/web
Я также могу успешно работать с go run cmd/web/*.go
Однако, когда я пытаюсь запустить с go run cmd/web
, почему компиляция завершается неудачно с выводом:
package cmd/web: package cmd/web is not in GOROOT (/usr/local/go/src/cmd/web)
Почему ./cmd/web
работает, а cmd/web
- нет?