Open1

Go 1.16環境構築(Windows)

yotto428yotto428

GOPATH, GOROOT is 何

  • $GOPATH : 依存パッケージなど関連のソースファイルを読み込む場所。
  • $GOROOT : goコマンドバイナリが置かれてるパス。(らしい)
    • 特に設定しなくてもいいぽい。
  • 少し前だと$GOPATH下にプロジェクトを置く必要があったよう。
    • 古い記事だとそういう構成で説明してたりする
  • Go1.16時点ではGo-Module構成が推奨になったため「GOPATH配下にプロジェクトを置かなければならない」という制約がなくなった

GOPATHの設定周り

  • WindowsインストーラーでGoを入れた場合、GOPATHとdefalutのバイナリパスが異なるようになった。
    • バイナリパス: C:\Program Files\Go\bin
    • GOPATH: %USERPROFILE%\go\bin
    • ※古い記事によってはC:\go下のsrcフォルダで作業するとかあるけど、デフォルトのインストール場所が変わった。
  • 後述のGo-Moduleによるプロジェクト構成にすることよって、$GOPATH配下で作業する必要がないので好きな場所でプロジェクト作成すればいい。

Go-Moduleによるプロジェクト構成

  • Go 1.16からGo-Moduleによるプロジェクト構成が推奨されたらしい
  • $GOPATH/src下にソースファイルを配置しないと読み込めなかったが、go.modを作成してmoduleとして読み込ませることで、参照解決できる
# go.modを作成
$ cd goclitest
$ go mod init goclitest

# 依存パッケージを読み込ませると、go.modに追記される
$ go get github.com/spf13/cobra
go.mod
module goclitest

go 1.16

require github.com/spf13/cobra v1.1.3

今後詰まった際に参考になりそうなリンク