ホームページ >バックエンド開発 >Golang >Go プロジェクトに「パッケージ XXX は GOROOT にありません」と表示されるのはなぜですか?

Go プロジェクトに「パッケージ XXX は GOROOT にありません」と表示されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-21 04:06:13402ブラウズ

Why Does My Go Project Show

Go プロジェクトのビルド時に「パッケージ XXX が GOROOT にありません」

エラー「パッケージ プロジェクト/ゲームが GOROOT にありません」のデバッグGo モジュールとプロジェクト レイアウトの概念を理解する必要があります。

Go モジュールとプロジェクト構造:

Go の新しいバージョン (1.13 以降) では、パッケージの依存関係を管理するために Go モジュールが使用されます。 Go モジュールは通常、go.mod ファイルとソース コードを含むディレクトリです。 go.mod ファイルは、モジュールの名前、依存関係、ファイルシステム内の場所を宣言します。

問題の解決:

  1. プロジェクトのルートに go.mod ファイルを置きます:
    プロジェクトのルート ディレクトリに go.mod が含まれていることを確認します。 ファイル。このファイルはリポジトリ内に配置し、プロジェクトのモジュール名を宣言する必要があります。
  2. GOROOT と GOPATH は必要ありません:
    Go の新しいバージョンでは、GOROOT や GOPATH などの環境変数はもう必要ありません。パッケージの依存関係は go.mod を通じて管理されます。
  3. ビルド コマンドの確認:
    Goland がプロジェクトのビルドに使用しているコマンドを確認します。これは次のようになります。

    go build -o C:UsersusernameAppDataLocalTemp___go_build_project_server.exe project/server

    このコマンドでは GOROOT フラグを指定しないでください。

  4. パッケージが間違っていると仮定する場所:
    エラー メッセージは、プロジェクトがプロジェクト/ゲーム パッケージが GOROOT にあることを予期していることを示唆しています。ただし、このパッケージはプロジェクトのソース ツリーに配置する必要があります。
  5. パッケージ パスの確認:
    ソース コード内のパッケージ パス (例: "project/game") を確認してください。ビルド コマンドで使用されるパスと一致します。

ネストされたワークフローパッケージ:

プロジェクトに「project/game/entity」などのネストされたパッケージがある場合は、次の追加手順に従う必要があります:

  1. 作成します。サブディレクトリの mod ファイル:
    独自のパッケージを含む各サブディレクトリ内に go.mod ファイルを作成します。このファイルは、サブモジュールの名前と親モジュールへの依存関係を宣言する必要があります。
  2. サブディレクトリにパッケージをインポート:
    サブディレクトリのソース コードで、親モジュールからパッケージをインポートします。構文を使用します:

    インポート"parent/submodule"

これらの手順に従うことで、「パッケージ プロジェクト/ゲームが GOROOT にありません」エラーを解決し、ネストされたパッケージを使用して Go プロジェクトを正しくビルドできます。

以上がGo プロジェクトに「パッケージ XXX は GOROOT にありません」と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。