我有以下golang项目结构:

1
2
3
4
5
6
7
8
- go-projects
  - src
    - github.com
      - user
        - my-project
          - pack
            - pack.go
          - main.go

我的GOPATH是:


export GOPATH=/home/user/go-projects

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


cd my-project
go build && go-install

没有任何输出,并且在任何地方也没有bin目录。 我做错了什么?

UPD此问题已解决。 意外误解了main.go和pack.go的文件内容。 但是现在还有另一个问题。

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

1
2
3
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)

谢谢

  • 您不需要go buildgo install作为一个初步步骤运行它,但是如果您在主程序包中会创建一个二进制文件,这可能会造成混淆。

虽然让工具从当前工作目录中推断出包可能很方便,但它的作用远不止一个简单的main包。 习惯于通过完整的导入路径来引用包,这样您就可以避免其他问题。

1
go install github.com/user/pack

它进入$GOPATH/bin/my-project,如果您想立即进行测试,请使用go run main.go

  • 感谢您的回答,但是:1.我有$ GOPATH / bin /目录,但是它为空2.尝试去运行main.go,即时消息无法运行非主文件,但是有一个简单的世界-gist.github.com/0xAX / 7e077f35defc3631356a