main.go:5:2: 包greetings不在GOROOT中 (C:\Program Files\Go\src\greetings)
我正在阅读 Head First go ,它是为了在 c:/users/username/go/src/packagename 和 c:/users/username/go/src/project_name 中创建文件夹而编写的
当我尝试跑步时
go run main.go从project_name文件夹中,我收到以下错误。
main.go:5:2: package greetings is not in GOROOT (C:\Program Files\Go\src\greetings)
C:\Users\agriz>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\agriz\AppData\Local\go-build
set GOENV=C:\Users\agriz\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\agriz\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\agriz\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16.7
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\agriz\AppData\Local\Temp\go-build2047492330=/tmp/go-build -gno-record-gcc-switches
Run Code Online (Sandbox Code Playgroud)
我不想将代码保留在 C 盘中。我想从 D:/ 运行代码,可以吗?我怎样才能做到这一点?
agr*_*riz 19
set GO111MODULE=off到set GOPATH想要的位置也很好。
go env -w GO111MODULE=off
Run Code Online (Sandbox Code Playgroud)
和
set GOPATH=D:\go
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题。
您可以使用 go mod 并明确给出要初始化的模块的路径。
来自文档
Init 初始化并将新的 go.mod 写入当前目录,实际上创建了一个以当前目录为根的新模块。文件 go.mod 不得已存在。如果可能,init 将从导入注释(请参阅“go help importpath”)或版本控制配置中猜测模块路径。要覆盖此猜测,请提供模块路径作为参数。
例子
'go mod init example.com/m' to initialize a v0 or v1 module
'go mod init example.com/m/v2' to initialize a v2 module
Run Code Online (Sandbox Code Playgroud)
有关如何设置 go 程序的更多详细信息,请参阅此处。
| 归档时间: |
|
| 查看次数: |
52182 次 |
| 最近记录: |