go - 使用一些内部包构建和安装 golang 项目

标签 go

我有以下 golang 项目结构:

- go-projects
  - src
    - github.com
      - user
        - my-project
          - pack
            - pack.go
          - main.go

我的 GOPATH 是:

导出 GOPATH=/home/user/go-projects

我正在尝试从 main.go 文件中的 pack 包中调用函数,并尝试使用以下方法构建此项目:

cd 我的项目 去构建&&去安装

没有任何输出,也没有 bin 目录。我做错了什么?

UPD 这个问题已经解决了。不小心误解了 main.go 和 pack.go 的文件内容。但是现在还有一个问题。

如何正确构建这个程序。当我尝试在 /home/user/go-projects/src/github.com/user/my-project 中执行 go build 时,出现以下错误:

main.go:4:8: cannot find package "github.com/user/pack" in any of:
    /home/user/Downloads/go/src/pkg/github.com/user/pack (from $GOROOT)
    /home/user/go-projects/src/github.com/user/pack (from $GOPATH)

谢谢

最佳答案

虽然让工具从当前工作目录推断包可能很方便,但它只适用于简单的 main 包。习惯于通过完整的导入路径来引用包,您将会避免其他问题。

go install github.com/user/pack

关于go - 使用一些内部包构建和安装 golang 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330011/

相关文章:

oop - 在这种情况下是否首选方法而不是函数

go - 如何从 slice 中删除最后一个元素?

go - 关闭由 channel 链接的 goroutine 链的优雅方法是什么?

azure - 使用 Go 的 Azure ServiceBus 队列的 OpenTelemetry 传播问题

谷歌表格 API : golang BatchUpdateValuesRequest

xml - 如何编码和解码具有不规则属性的 XML

go - 阻止来自Pod的HTTP请求的最大数量

oop - 去 "polymorphism"

go - 如何在编译时使用四个 ASCII 代码创建常量 uint32 标签?

go - 在 Go 测试包中模拟 statsd 客户端