我有错误:
go install: no install location for directory /Users/xwilly/Dropbox/go/project/src outside GOPATH
Run Code Online (Sandbox Code Playgroud)
我在OS X上使用的是1.1版.
我可以构建和运行但无法安装包.
我的环境:
GOPATH=/Users/xwilly/Dropbox/go/project
PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:/Users/xwilly/Dropbox/go/project/bin
Run Code Online (Sandbox Code Playgroud)
项目树:
/Users/xwilly/Dropbox/go/project
bin
pkg
src
Run Code Online (Sandbox Code Playgroud)
我可以毫无错误地构建:
..:src xwilly$ go build test.go
..:src xwilly$ go install test.go
go install: no install location for directory /Users/xwilly/Dropbox/go/project/src outside GOPATH
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子:
xwilly$ cat test.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Bonjour")
}
xwilly$ go run test.go
Bonjour
xwilly$ go install test.go
go install: no install location for directory /Users/xwilly/Dropbox/go/project/src/learning outside GOPATH
Run Code Online (Sandbox Code Playgroud)
pet*_*rSO 32
列出的每个目录
GOPATH必须具有规定的结构:该
src/目录包含源代码.下面的路径'src'确定导入路径或可执行文件名称.该
pkg/目录包含已安装的包对象.与Go树一样,每个目标操作系统和体系结构对都有自己的子目录pkg(pkg/GOOS_GOARCH).如果
DIR是列出的目录,则GOPATH在DIR/src/foo/bar中包含源的包可以导入为"foo/bar"并将其编译的表单安装到"DIR/pkg/GOOS_GOARCH/foo/bar.a".该
bin/目录包含已编译的命令.每个命令都以其源目录命名,但仅以最终元素命名,而不是整个路径.也就是说,带有source的命令DIR/src/foo/quux安装在DIR/bin/quux中,而不是DIR/bin/foo/quux.将foo/被剥离,以便您可以添加DIR/bin到您PATH得到在安装命令.如果GOBIN设置了 环境变量,则命令将安装到其命名的目录而不是DIR/bin.这是一个示例目录布局:
Run Code Online (Sandbox Code Playgroud)GOPATH=/home/user/gocode /home/user/gocode/ src/ foo/ bar/ (go code in package bar) x.go quux/ (go code in package main) y.go bin/ quux (installed command) pkg/ linux_amd64/ foo/ bar.a (installed package object)
你的目录结构是错误的.您正在尝试安装命令(package main).它应该位于以命令命名的源目录中.请参阅quux上面的命令.
在您的情况下,假设您的命令将被命名billy.
$ mkdir -p /Users/xwilly/Dropbox/go/project/src/billy
Run Code Online (Sandbox Code Playgroud)
在你的内心GOPATH.将test.go文件移动到此目录.跑
$ go install billy
Run Code Online (Sandbox Code Playgroud)
billy除非您已设置,否则该命令应GOBIN安装在
/Users/xwilly/Dropbox/go/project/bin
Run Code Online (Sandbox Code Playgroud)
你里面的目录GOPATH,应该在你的PATH.
| 归档时间: |
|
| 查看次数: |
22645 次 |
| 最近记录: |