Open1
Go 1.16環境構築(Windows)
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
今後詰まった際に参考になりそうなリンク