main.go:4:2: package banco/clientes is not in GOROOT (C:\Program Files\Go\src\banco\clientes) main.go:5:2: package banco/contas is not in GOROOT (C:\Program Files\Go\src\banco\contas
main.go:4:2: package banco/clientes is not in GOROOT (C:\Program Files\Go\src\banco\clientes) main.go:5:2: package banco/contas is not in GOROOT (C:\Program Files\Go\src\banco\contas
Olá Vinícius,
Nas versões mais recentes do Go (pós 1.13), você não precisa definir variáveis de ambiente como GOPATH, GOBIN, etc. Porém, você precisa ter um arquivo go.mod na raiz do projeto. Isso tornará o diretório um módulo Go. Isso significa que apenas um arquivo go.mod
é necessário por repositório. Dentro da raiz do projeto você pode fazer um go mod init remote-repo.com/username/repository
Já o erro que você está tendo, esse comportamento é esperado porque o pacote com o qual estamos trabalhando não faz parte do Go SDK, ou seja, não está no GOROOT. O pacote com o qual estamos trabalhando ficará no espaço de trabalho go ou no diretório de trabalho atual. A execução go install
compila e coloca um binário executável em $GOBIN(também conhecido como $GOPATH/bin
). A execução go build
de dentro de um pacote compila e coloca um executável nesse diretório.
O GOROOT geralmente fica em (C:\Go\src\project\game), se você tem um arquivo go.mod ele deve ficar dentro do diretório GOROOT que o Go irá procurar pelo seus projetos, caso contrário ocorrerá um "package banco/clientes is not in GOROOT"
Exemplo de estrutura do projeto Golang:
└── go -> GOOROOT
├── bin
├── pkg
└── src
└──project
└── hello
└── hello.go