76

私のGOPATHには次のようなものがあります:

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

で、main.go私は持っています。package maind_interface.god_struct_that_implements_the_interface.gopackage my_prog

しようとするgo build my_progと、次のエラーが表示されます。

can't load package: package my_prog: found packages my_prog (d_interface.go) and main (main.go) in C:\dev\Code\Go\src\my_prog

これは、に属するファイルはすべてpackage main独自のフォルダーに入れる必要があるということですか? もしそうなら、その理由は何ですか?

4

3 に答える 3

79

はい、各パッケージは独自のディレクトリで定義する必要があります。

ソース構造はHow to Write Go Codeで定義されています。

パッケージは、複数のプログラムで使用できるコンポーネントであり、公開、インポート、URL からの取得などを行うことができます。したがって、プログラムがディレクトリを持つことができるのと同じように、パッケージが独自のディレクトリを持つことは理にかなっています。

于 2013-01-19T16:27:24.827 に答える
20

また、main.go ファイルを複数のファイルに分割するだけの場合は、それらのファイルの 1 つだけで main 関数を定義している限り、他のファイルに「package main」という名前を付けてください。行く。

于 2015-01-11T19:12:08.750 に答える
2

$GOPATHパッケージがディレクトリにインストールされているか、ワークスペース/パッケージ内に既にインストールされていることを確認してください。

例:あなた$GOPATH = "c:\go"の場合、パッケージが内側にあることを確認してくださいC:\Go\src\pkgName

于 2013-11-19T19:08:16.833 に答える