运行go run main.go
我收到一条奇怪的错误消息:
danilo@lm ~/godev/src/quick $ go run main.go
command-line-arguments
/usr/lib/go-1.6/pkg/tool/linux_amd64/link: cannot open file /usr/lib/go-1.6/pkg/linux_amd64/github.com/valyala/quicktemplate.a: open /usr/lib/go-1.6/pkg/linux_amd64/github.com/valyala/quicktemplate.a: no such file or directory`
这是我的环境:
Linux Mint 18
GOLANG ENV:
danilo@lm ~/godev/src/quick $ go env
GOARCH="amd64"
GOBIN="/home/danilo/godev/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/danilo/godev"
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
我的$ GOPATH树:
.(godev)
├── bin
│ └── qtc
├── pkg
│ └── linux_amd64
│ └── github.com
│ └── valyala
│ ├── bytebufferpool.a
│ └── quicktemplate.a
└── src
├── github.com
│ └── valyala
│ ├── bytebufferpool
│ │ ├── ...
│ └── quicktemplate
│ ├── ...
└── quick
├── main.go
└── templates
├── hello.qtpl
└── hello.qtpl.go
似乎错过了我的工作区中存储静态库的pkg
文件夹!
我是对的吗?
提前致谢。
答案 0 :(得分:1)
对不起,我解决了。 main.go
代码为:
package main
import (
"fmt"
"./templates"
)
func main() {
fmt.Printf("%s\n", templates.Hello("Foo"))
fmt.Printf("%s\n", templates.Hello("Bar"))
}
所以我错过了在导入部分使用绝对路径:
package main
import (
"fmt"
"quick/templates"
)
func main() {
fmt.Printf("%s\n", templates.Hello("Foo"))
fmt.Printf("%s\n", templates.Hello("Bar"))
}