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

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

Susan Sarandon
リリース: 2024-12-19 00:11:10
オリジナル
959 人が閲覧しました

Why Am I Getting the

Go プロジェクトの「パッケージ XXX は GOROOT にありません」エラー

このエラーは、Go プロジェクトをビルドまたは実行しようとして次のシナリオが発生したときによく発生します。

  • プロジェクトは次のように構成されています

    src/
    |--project
       |--game
           |--entity
               |--whatever.go
           |--game_stuff.go
       |--server
    ログイン後にコピー
  • GOROOT は正しいパス (例: C:Go) に設定されています。

原因

Go の最近のバージョン(1.13 以降)、GOPATH や GOBIN などの環境変数を設定する必要はなくなりました。代わりに、プロジェクトのルートには、Go モジュールとして示す go.mod ファイルが含まれている必要があります。

解決策

この問題を解決するには、次の手順に従います。

  1. go.mod ファイルを作成します: プロジェクトのルート ディレクトリで go mod init を実行します。 [remote-repo.com/username/repository].
  2. メイン パッケージを定義します: go.mod ファイル内で、メイン パッケージのパッケージ パス (例: github.com) を指定します。 /yourname/calculatorv3) とそのメイン ファイル (例: main.go).
  3. 古い環境変数を削除します: 以前に GOPATH と GOBIN を設定していた場合は、環境設定からそれらの行を削除するかコメントアウトしてください。
  4. プロジェクトを再ビルドまたは実行します: go build または go run コマンドを再実行します。これにより、プロジェクトの構造とビルドが正しく認識されるようになります。または、適切なパッケージを実行します。

提供されているサンプル プロジェクト構造の場合:

  1. プロジェクト内に go.mod ファイルを作成します。ルート ディレクトリに移動し、以下を含めます:

    module github.com/myorg/myproject
    
    go 1.17
    
    require (
     github.com/myorg/gameutils v1.2.3
    )
    ログイン後にコピー
  2. main.go が配置されていることを確認します。 project/server ディレクトリ内。
  3. 古い環境変数を削除するかコメントアウトします。

    # GOPATH=$HOME/go  # Assuming previous GOPATH setting
    ログイン後にコピー
  4. go build -o server project/server を再実行して、プロジェクトをビルドします。

追加メモ

  • プロジェクトの場合外部パッケージを使用している場合は、go get または go mod tiny を使用してインストールされていることを確認してください。
  • エラーが解決しない場合は、go clean -modcache を使用して Go キャッシュをクリアしてみてください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート