In meinem GOPATH habe ich so etwas:
/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
In habe main.go
ich package main
, in d_interface.go
und d_struct_that_implements_the_interface.go
ich habe package my_prog
.
Wenn ich es versuche, go build my_prog
erhalte ich den folgenden Fehler:
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
Bedeutet dies, dass jede Datei, zu der sie gehört, package main
in einem eigenen Ordner abgelegt werden sollte? Wenn ja, was ist der Grund dafür?
/src/my_prog/
das Einfügen des Hauptpakets und des my_prog-Pakets/src/my_prog/my_prog/
funktioniert.Wenn Sie nur versuchen, die Datei main.go in mehrere Dateien aufzuteilen, nennen Sie die anderen Dateien einfach "package main", solange Sie nur die Hauptfunktion in einer dieser Dateien definieren gehen.
quelle
Stellen Sie sicher, dass Ihr Paket in Ihrem
$GOPATH
Verzeichnis oder bereits in Ihrem Arbeitsbereich / Paket installiert ist .Zum Beispiel: Wenn ja
$GOPATH = "c:\go"
, stellen Sie sicher, dass das Paket darin istC:\Go\src\pkgName
quelle