Golang源码文件中遇到的问题

Golang源码文件中遇到的问题 有人能帮帮我吗? 我在GitHub上遇到了一个问题。 当我们对 “goes to eleven” 执行 go get -d 命令时,它在包目录下创建了那个github目录,而不是在源码目录下。

image

请告诉我这个问题该如何解决。

21 回复

所以我不应该直接专注于Go模块,对吗

更多关于Golang源码文件中遇到的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


方向错误

抱歉,没理解你的意思

我不喜欢视频。我更愿意阅读。

哪个问题?如今模块已成为默认设置,这在一定程度上是预料之中的。

好的,我会做,非常感谢你的帮助。

我对视频一无所知。我更喜欢通过官方文档来学习。

而我观看的视频中,文件只在 src 目录里。

我将尝试启用 $GOPATH\src,看看是否能解决问题。

好的,我会去查看Go的文档。 无论如何,感谢你的帮助。

func main() {
    fmt.Println("hello world")
}

你能给我一些建议吗?因为我是编程新手,并且直接从Go语言开始学习。

你应该弄清楚如何使用 Go 模块,而不是如何回归到过时的工作流程。

好的,非常感谢。 另外,由于我是编程新手,你能给我一些建议,告诉我可以参考哪些视频吗?

你能给我推荐一些视频吗?大部分视频都使用Mac,而我用的是Windows。 我已经下载了Git Bash和GoLand。

请直接专注于 Go 模块。GOPATH 是模块化之前的技术。请避免使用它。

这是谷歌搜索的第一个结果。看起来是个不错的起点:如何使用 Go 模块 | DigitalOcean

如今,Go 模块已成为默认方式,go get 通常只是下载源代码并将模块添加到 go.mod 中。

下载到 $GOPATH/src 是旧版行为,在现代 Go 中默认已禁用。

你应该寻找一个更现代的教程,遵循模块的惯用法。

好的,我遇到的问题是:我打开 Git Bash 终端,创建了 binpkgsrc 目录。 然后在 src 目录中,我使用命令 go get -d 以及我想要获取的资源,我希望的路径是 src。 当它下载完成后,它被保存在 pkg 文件夹里,而不是 src 文件夹里。 每次我在 documents\goworkplace\src 目录下使用 go get 命令时, 它本应该把文件下载到 src 目录, 但它却下载到了 documents\goworkplace\pkg 目录。 我现在刚开始接触编程,所以卡在这个问题上无法继续。

这个问题通常是由于 GOPATH 环境变量设置或模块模式导致的目录结构问题。以下是具体解决方案:

1. 检查当前模块模式

// 查看当前是否启用 Go Modules
go env GO111MODULE

// 如果返回 "auto" 或 "on",说明正在使用模块模式

2. 如果使用 Go Modules(推荐)

# 初始化模块(如果尚未初始化)
go mod init your-module-name

# 然后执行 go get
go get github.com/user/repo

# 或者使用 -d 标志
go get -d github.com/user/repo

3. 如果使用传统 GOPATH 模式

# 确保 GOPATH 正确设置
echo $GOPATH

# 正确结构应该是:
# GOPATH/
#   src/
#     github.com/
#       user/
#         repo/

# 在正确的 GOPATH/src 目录下执行
cd $GOPATH/src
go get -d github.com/user/repo

4. 清理并重新获取

# 清理旧的下载
go clean -modcache

# 重新获取依赖
go get -d github.com/user/repo

5. 检查 go.mod 文件位置

确保 go.mod 文件位于项目根目录:

// go.mod 示例
module example.com/myproject

go 1.21

require (
    github.com/user/repo v1.2.3
)

6. 完整示例代码

// main.go
package main

import (
    "fmt"
    "github.com/user/repo" // 替换为实际包
)

func main() {
    fmt.Println("Dependency resolved correctly")
}

执行步骤:

# 在项目根目录
go mod init example.com/project
go mod tidy
go get -d github.com/user/repo

这样应该能正确将依赖下载到 $GOPATH/pkg/mod(模块模式)或 $GOPATH/src(传统模式)目录中。

回到顶部