Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 1.6中的自动售货机_Go_Vendor - Fatal编程技术网

Go 1.6中的自动售货机

Go 1.6中的自动售货机,go,vendor,Go,Vendor,我已经阅读了尽可能多的文档和StackOverflow文章,但是我没有幸使用Go1.6中的新供应商功能导入 这里有一个我准备测试的示例项目。目录结构如下所示: . └── src ├── main.go └── vendor └── github.com └── zenazn └── goji ├── LICENSE ├── RE

我已经阅读了尽可能多的文档和StackOverflow文章,但是我没有幸使用Go1.6中的新供应商功能导入

这里有一个我准备测试的示例项目。目录结构如下所示:

.
└── src
    ├── main.go
    └── vendor
        └── github.com
            └── zenazn
                └── goji
                    ├── LICENSE
                    ├── README.md
                    ├── bind
                    ├── default.go
                    ├── example
                    ├── goji.go
                    ├── graceful
                    ├── serve.go
                    ├── serve_appengine.go
                    └── web
package main

import (
    "fmt"
    "net/http"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
)

func hello(c web.C, w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"])
}

func main() {
    goji.Get("/hello/:name", hello)
    goji.Serve()
}
项目中唯一的文件
main.go
,如下所示:

.
└── src
    ├── main.go
    └── vendor
        └── github.com
            └── zenazn
                └── goji
                    ├── LICENSE
                    ├── README.md
                    ├── bind
                    ├── default.go
                    ├── example
                    ├── goji.go
                    ├── graceful
                    ├── serve.go
                    ├── serve_appengine.go
                    └── web
package main

import (
    "fmt"
    "net/http"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
)

func hello(c web.C, w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"])
}

func main() {
    goji.Get("/hello/:name", hello)
    goji.Serve()
}
我的环境变量如下:

export GOPATH=~/.go
export GOBIN=$GOPATH/bin
export PATH=$PATH:/usr/local/opt/go/libexec/bin:$GOBIN
我尝试过最简单的构建命令,但没有成功:

go run ./src/main.go
go build ./src/main.go
我还尝试使用以下工具进行构建:

$GOPATH=`pwd`
…毫无用处。我完全错过了什么吗?感谢您的建议。

我建议您阅读。它需要一两天的时间来消化,但在您了解了go工具如何使用源代码和GOPATH之后,就很容易使用它们了

回到你的问题上来。要构建一个简单的围棋程序,您需要:

  • 在$GOPATH/src下创建目录,例如,
    mkdir$GOPATH/src/myprogram
  • 将所有源代码(包括供应商目录)放在那里:
    $GOPATH/src/myprogram/main.go
    $GOPATH/src/myprogram/vendor
  • 运行
    go install myprogram
    构建应用程序,并将生成的
    myprogram
    二进制文件放入
    $GOPATH/bin/myprogram

src下的整个分支应该在一个子目录中,不是吗?你能试着创建一个目录“foo”并将
main.go
vender
移动到它下面吗?你能发布你尝试过的确切命令和收到的错误消息吗?@kostya编辑以添加构建命令。@sberry不走运。但是,自动售货机只是图书馆的吗?非常感谢@kostya;你帮我解决了。我需要做两件事:正确设置
$GOPATH
,并将项目移动到
/src
下的子目录中。将项目移动到
src/
为我做到了这一点