即使我有GOPATH个正确的设置,我仍然不能让"Go Build"或"Go Run"找到我自己的包.我做错了什么?

$ echo $GOROOT
/usr/local/go

$ echo $GOPATH
/home/mitchell/go

$ cat ~/main.go
package main
import "foobar"
func main() { }

$ cat /home/mitchell/go/src/foobar.go
package foobar

$ go build main.go
main.go:3:8: import "foobar": cannot find package

推荐答案

它不起作用,因为您的foobar.go源文件不在名为foobar的目录中.go buildgo installtry 匹配目录,而不是源文件.

  1. $GOPATH设置为有效目录,例如export GOPATH="$HOME/go"
  2. 移动到foobar.go$GOPATH/src/foobar/foobar.go,建筑应该可以正常工作.

建议的其他步骤:

  1. 通过:PATH="$GOPATH/bin:$PATH"$GOPATH/bin添加到$PATH
  2. main.go移动到$GOPATH/src的子文件夹,例如$GOPATH/src/test
  3. go install test现在应该在$GOPATH/bin中创建一个可执行文件,可以通过在终端中键入test来调用它.

Go相关问答推荐

如何模拟嵌入. FS?

GORM Find(&;Room)操作使用空数据而不是实际数据填充 struct

Date.Format正在输出非常奇怪的日期

使用!NOT运算符的Golang文本/模板多个条件

为什么要立即调用内联函数,而不仅仅是调用其包含的函数?

在运行时更改 Go lang slog 的日志(log)级别

如何使用 AWS sdk 在 Go 中正确解组 PartiQL 查询的结果?

Go:如何在不加载正文的情况下创建 http 代理通行证

在 GoLang 中对自定义 struct 体数组进行排序

如何将Golang测试用例的测试覆盖率值与特定阈值进行比较

如何使用 go-git 将特定分支推送到远程

如何判断范围内的字段?

使用模拟在 golang 中测试我的界面.专门测试调用同级函数的 1 个函数

如果 transaction.Commit 对带有 postgres 连接的 SQL 失败,您是否需要调用 transaction.RollBack

函数超时和 goroutine 泄漏

github.com/rs/zerolog 字段的延迟判断

此代码如何生成内存对齐切片?

Go 加密库创建的 PKCS1 公钥与openssl rsa ...之间的区别

有没有办法在一个 goroutine 返回后延迟后取消上下文?

传递上下文的最佳方式