背景

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は入れっぱなしで放置していた為、
この疑問すら、今回の作業まで持たずにいた。やはり、何事も手を動かすことが大事だ。

link

関連記事

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.