go言語を勉強中。
環境Windows10
VSCODE
go 1.17.7
プロジェクト名のディレクトリの下にmain.goを作成して
その下にmylibというディレクトリを作りました。
その中にgoファイルを作成して関数を作り。
main.goでその関数を呼び出そうとしたら以下のエラーなりました。
main.go:4:2: package projectname/mylib is not in GOROOT (C:\Program Files\Go\src\projectname\mylib)
この問題について以下の記事がありました。
[GO言語]GOPATH以外の場所でのimportの挙動について整理
しかし、Go 1.16からGo-Moduleによるプロジェクト構成が推奨されたらしいという記事を発見しました。
cd projectname
go mod init projectname
でモジュールを認識して実行するとこができました。
package main
import (
"PROJECTNAME/mylib"
"fmt"
)
と記述すれば、mylibの中のモジュールを読み込んでくれました。