Go 1.6中的自动售货机
我已经阅读了尽可能多的文档和StackOverflow文章,但是我没有幸使用Go1.6中的新供应商功能导入 这里有一个我准备测试的示例项目。目录结构如下所示:Go 1.6中的自动售货机,go,vendor,Go,Vendor,我已经阅读了尽可能多的文档和StackOverflow文章,但是我没有幸使用Go1.6中的新供应商功能导入 这里有一个我准备测试的示例项目。目录结构如下所示: . └── src ├── main.go └── vendor └── github.com └── zenazn └── goji ├── LICENSE ├── RE
.
└── 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
main.go
和vender
移动到它下面吗?你能发布你尝试过的确切命令和收到的错误消息吗?@kostya编辑以添加构建命令。@sberry不走运。但是,自动售货机只是图书馆的吗?非常感谢@kostya;你帮我解决了。我需要做两件事:正确设置$GOPATH
,并将项目移动到/src
下的子目录中。将项目移动到src/
为我做到了这一点