背景
goでOpenGLやってみようと、go-glを試すも、exampleのtriangle.goがちっとも動かない。しかも
よく見ると、ログ吐くのに失敗しているように見える。
go version
で調べてみると、最新版でないGoだったので、Go本体をアップデートした。
自前で入れたパッケージがバージョンエラー
go run triangle.go
# command-line-arguments
./triangle.go:10: import /Users/kjw_junichi/gocode/pkg/darwin_amd64/github.com/andrebq/gas.a: object is [darwin amd64 go1.3 X:precisestack] expected [darwin amd64 go1.3.3 X:precisestack]
Stackoverflowで回答見つけるも
go get -u all
で行けるように、思われたが、ダメだった。
Workaround
文句言われてる、xx.aファイルを削除しては、go runを繰り返すことで解決した。
rm /Users/kjunichi/gocode/pkg/darwin_amd64/github.com/andrebq/gas.a
go run triangle.go
# command-line-arguments
./triangle.go:11: import /Users/kjunichi/gocode/pkg/darwin_amd64/github.com/go-gl/gl.a: object is [darwin amd64 go1.3 X:precisestack] expected [darwin amd64 go1.3.3 X:precisestack]
rm /Users/kjunichi/gocode/pkg/darwin_amd64/github.com/go-gl/gl.a
go run triangle.go
まとめ
結局、目的のtriangle.goはエラーが解消しなかったが、
Goで、本体を更新した際のローカルに入れたパッケージのスマートな更新方法は
どうやるのだろう?
Goは入れっぱなしで放置していた為、
この疑問すら、今回の作業まで持たずにいた。やはり、何事も手を動かすことが大事だ。