ツッコミお待ちしております。
追記: 下記は go version go1.3.3 windows/386 で確認しています。また Linux だと期待通りに動きます (thanks @heliac2000)。(というか Windows だけ通らない?)
追々記: GOPATH 配下では go build
はローカルパッケージを参照できないことを教えてもらいました (thanks @mattn)。GOPATH 配下以外では Windows / Linux 共に (おそらくその他の環境でも) ローカルパッケージを参照することができます。
前提
. (GOPATH)
└─src
└─hoge
├─main.go
└─localpackage
└─func.go
main.go
package main
import (
"fmt"
"./localpackage"
)
func main() {
fmt.Println(localpackage.LocalFunc())
}
localpackage/func.go
package localpackage
func LocalFunc() string {
return "LocalFunc()"
}
hoge> go version
go version go1.3.3 windows/386
ビルド
ビルドします。
hoge> go build
can't load package: \hoge\main.go:6:2: local import "./localpackage" in non-local package
はい。
ファイルを指定してビルド
気を取り直してビルドします。
hoge> go build main.go
(成功するので何も表示されない)
はい。
で?
"." で始まってたら該当ファイルからの相対パスと見なす、みたいな優しさがほしい。