3 回答

TA贡献1911条经验 获得超7个赞
阅读:Ian Lance Taylor 的评论(Go 的核心团队)
我知道三种方法:
方法1(最好的方法):
# Inside
# Ch2-GOMS
# │ ├── go.mod
# │ ├── handlers
# │ │ └── hello.go
# │ └── main.go
# In Ch2-GOMS
go mod init github.com/AP/Ch2-GOMS
# In main.go
# Add import "github.com/AP/Ch2-GOMS/handlers"
# But, make sure:
# handlers/hello.go has a package name "package handlers"
你一定做错了什么,这就是为什么它不起作用。
方法2(好方法):
# Inside
# Ch2-GOMS
# │ ├── go.mod
# │ ├── handlers
# │ │ └── hello.go
# │ └── main.go
# Inside the handlers package
cd Ch2-GOMS/handlers
go mod init github.com/AP/Ch2-GOMS/handlers # Generates go.mod
go build # Updates go.mod and go.sum
# Change directory to top-level (Ch2-GOMS)
cd ..
go mod init github.com/AP/Ch2-GOMS # Skip if already done
go build # Must fail for github.com/AP/Ch2-GOMS/handlers
vi go.mod
在 Ch2-GOMS/go.mod 中添加以下行:
# Open go.mod for editing and add the below line at the bottom (Not inside require)
replace github.com/AP/Ch2-GOMS/handlers => ./handlers
# replace asks to replace the mentioned package with the path that you mentioned
# so it won't further look packages elsewhere and would look inside that's handlers package located there itself
方法3(急躁的快速破解方法):
关闭 Go 模块GO111MODULE=off
删除go.mod文件
# Check: echo $GOPATH
# If $GOPATH is set
mkdir -p $GOPATH/src/github.com/AP/Ch2-GOMS
cd $GOPATH/src/github.com/AP/Ch2-GOMS
# If $GOPATH is unset
mkdir -p ~/go/src/github.com/AP/Ch2-GOMS
cd ~/go/src/github.com/AP/Ch2-GOMS
# Now create a symbolic link
ln -s <full path to your package> handlers
原因:在构建过程中,编译器首先查找供应商,然后查找 GOPATH,然后查找 GOROOT。因此,由于符号链接,VSCode 的 go 相关工具也将由于提供的符号链接而正常工作,因为它依赖于 GOPATH(它们在 GOPATH 之外无法工作)

TA贡献1796条经验 获得超4个赞
以下是步骤-
on main folder - go mod init
2.go mod tidy
3.go to the folder where main file is present
4.install the package via
go get <package name>
5.go build
在上述步骤之前,您的项目路径应该是
project path = GOPATH/src/<project_name>
除了应该还有 2 个与src文件夹平行的文件夹
源代码
包
斌
每当您安装任何软件包时,它都应该放在 pkg 文件夹中,并且在执行 go mod tidy 之后应该生成一个文件
去.mod
项目清单
- 3 回答
- 0 关注
- 358 浏览
添加回答
举报