1. ホーム
  2. go

[解決済み】Goプロジェクトのビルド時に「XXXパッケージはGOROOTにありません」と表示される。

2022-01-20 03:52:38

質問

このプロジェクトを休んでいるときに、変な問題が発生しました。Golandを起動し、プロジェクトを実行しようとすると、エラーが多発するのです。

具体的なエラーは、私のパッケージの1つをビルドする際に、次のようになります。 start.go: package project/game is not in GOROOT (C:\Go\src\project\game)

の下にこのようなフォルダ構造を持っています。 C:\Users\username

go
|-src
   |-project
        |-game
            |-entity
                 |-whatever.go
            |-game_stuff.go
        |-server

で、私の env vars はこのようになっています。

GOROOT=C:\Go 
GOPATH=C:\Users\ketchup\go 

をそれぞれのモジュール(project/game/entity、project/game、project/server)に対して行ったのです。 git mod init .

ビルドの際、Golandはこれを実行しようとします。

C:\Go\bin\go.exe build -o C:\Users\ketchup\AppData\Local\Temp\___go_build_project_server.exe project/server

を実行し、エラーを返します。

この問題についてどなたか教えてください。前回開いたときはうまくいっていたので、ちょっと迷っています。また、どの方向を見ていいのかもわかりません。私はGoのかなり初心者なので、どのドキュメントを見ていいのかもよくわかりません :\ \ ありがとうございます。

どのように解決するのですか?

かなり間抜けな結論ですが(ほとんど私の方です)、私の問題は go mod init を削除した後、それぞれのフォルダの go.modgo.dep した各フォルダから go mod init で、問題なくビルドできました(ターミナルから)

また、設定でGoモジュールを有効にしていたため、GoLandの私のパッケージが検出されませんでした。これを無効にしたところ、GoLand は外部パッケージと自分のパッケージのインデックスを作成できるようになりました。