15

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

$ 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
4

3 回答 3

11

设置你的 GOPATH。将您的包 foo 源代码放入 GOPATH/src/optional-whatever/foo/*.go 并在代码中使用它

import "optional-whatever/foo"

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

于 2012-05-15T13:06:45.070 回答
8

有几件事需要发生。您必须先安装“测试”包:

$ 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会为您创建。一旦你安装了测试包(通常是一个坏名字,顺便说一句)go build main.go现在应该给出不同的错误(例如,“导入和未使用”)

于 2012-05-15T12:45:47.067 回答
-3

或许,你可以把 test.go 文件和 main.go 放在同一目录下,在 test.go 中,它使用这样的东西:</p>

import "./test"
于 2012-07-16T04:03:01.660 回答