我已经阅读了尽可能多的文档和StackOverflow文章,但我没有运气使用Go 1.6中的新供应商功能进行导入。
这是我与Goji一起进行测试的示例项目。目录结构如下:
.
└── src
├── main.go
└── vendor
└── github.com
└── zenazn
└── goji
├── LICENSE
├── README.md
├── bind
├── default.go
├── example
├── goji.go
├── graceful
├── serve.go
├── serve_appengine.go
└── web
项目中唯一的文件main.go
是这样的:
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`
......无济于事。我完全错过了什么吗?任何建议都表示赞赏。
答案 0 :(得分:8)
我建议你阅读https://golang.org/doc/code.html。它需要一两天才能消化,但在您了解了工具如何使用源代码和GOPATH后,它们就非常容易使用。
回到你的问题。要构建一个简单的go程序,你需要:
mkdir $GOPATH/src/myprogram
$GOPATH/src/myprogram/main.go
,$GOPATH/src/myprogram/vendor
。go install myprogram
来构建您的应用,并将生成的myprogram
二进制文件放到$GOPATH/bin/myprogram