ホームページ >バックエンド開発 >Golang >Go が「パッケージを読み込めません: パッケージ my_prog: パッケージ my_prog と main が見つかりました」を返すのはなぜですか?

Go が「パッケージを読み込めません: パッケージ my_prog: パッケージ my_prog と main が見つかりました」を返すのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-13 08:49:09465ブラウズ

Why Does Go Return

エラー: 「パッケージを読み込めません: パッケージ my_prog: パッケージ my_prog と main が見つかりました」

Go では、各パッケージは次の場所に存在する必要がありますGOPATH 内の別のディレクトリ。 「パッケージを読み込めません: パッケージ my_prog: パッケージ my_prog と main が見つかりました」というエラーが発生した場合、同じ名前で異なるディレクトリに複数のパッケージが定義されていることを示します。

あなたの場合、 /src/my_prog/main.go ディレクトリに

  • main.go があり、メインを定義します。 /src/my_prog ディレクトリ内の package
  • d_interface.go および d_struct_that_implements_the_interface.go。どちらも my_prog パッケージ

を定義します。この問題を解決するには、ファイル d_interface を移動する必要があります。 go および d_struct_that_implements_the_interface.go を GOPATH/src 内の新しいディレクトリに移動します。 my_prog_pkg などの一意の名前を付けます。更新された構造は次のようになります。

/bin/
/pkg/
/src/
/src/main/
/src/main/main.go
/src/my_prog_pkg/
/src/my_prog_pkg/d_interface.go
/src/my_prog_pkg/d_struct_that_implements_the_interface.go

この方法では、main と my_prog_pkg という 2 つの個別のパッケージが作成されます。

この要件の背後にある理由は、Go パッケージが次の方法を提供するためです。コードを整理してモジュール化します。各パッケージには特定の機能があり、複数のプログラム間で再利用できます。各パッケージを独自のディレクトリに定義することで、パッケージが相互に分離され、名前の競合を防ぐことができます。

以上がGo が「パッケージを読み込めません: パッケージ my_prog: パッケージ my_prog と main が見つかりました」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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