问题 我如何找到我的包裹?


我应该把我的包装放在哪里,以便它可以被另一个包装进口?

$ tree
.
├── main.go
└── src
    └── test.go

1 directory, 2 files

$ cat src/test.go 
package test

$ cat main.go 
package main

import "test"

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

8744
2018-05-15 12:35


起源

GOPATH的价值是什么? - William Pursell
GOPATH未设定。 - August Karlstrom


答案:


设置你的GOPATH。把你的包foo源放在GOPATH / src / optional-whatever / foo / *。去并在代码中使用它

import "optional-whatever/foo"

 需要显式安装foo,go工具是一个构建工具,它会在必要时自动为您完成。


8
2018-05-15 13:06



澄清一下:包将是一个目录(例如'foo')。您将导入文件夹作为模块,而不是单个源文件。 - VOIDHand


有一些事情需要发生。您必须先安装“test”包:

$ export GOPATH=$(pwd)   # Assumes a bourne shell (not csh)
$ mkdir src/test
$ mv src/test.go src/test/test.go
$ mkdir pkg                 # go install will put packages here
$ go install test           # build the package and put it in $GOPATH/pkg
$ go build main.go

请注意,没有必要创建pkg,如 go install 会为你做那件事。 一旦安装了测试包(通常是坏名称,BTW) go build main.go 现在应该给出不同的错误(例如,“导入和未使用”)


8
2018-05-15 12:45



我明白了,谢谢威廉。 - August Karlstrom
迄今为止新手最干净的解释。 - gmile


也许,您可以将test.go文件放在与main.go相同的目录中,并且 在test.go中,它使用这样的东西:

import "./test"

-4
2017-07-16 04:03