我如何找到我的包裹?

Aug*_*rom 12 go

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

$ 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
Run Code Online (Sandbox Code Playgroud)

Wil*_*ell 8

有一些事情需要发生.您必须先安装"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
Run Code Online (Sandbox Code Playgroud)

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


zzz*_*zzz 8

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

import "optional-whatever/foo"
Run Code Online (Sandbox Code Playgroud)

并不需要显式地安装foo,那么去工具是一个构建工具,它会做自动的为你需要的时候.

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