Fehler "kann das Paket nicht laden: package my_prog: die gefundenen Pakete my_prog und main"
In meinem GOPATH ich habe so etwas wie dieses:
/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 main.go
ich habe package main
im d_interface.go
und d_struct_that_implements_the_interface.go
ich habe package my_prog
.
Wenn ich versuche go build my_prog
bekomme ich die folgende Fehlermeldung:
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, die gehört zu package main
gehen sollte in seinem eigenen Ordner? Wenn ja, was ist der Grund dafür?
InformationsquelleAutor der Frage TheTeaMan | 2013-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, jedes Paket muss definiert werden, in seinem eigenen Verzeichnis.
Den source-Struktur ist definiert in Wie Sie Schreiben, Gehen Code.
Paket ist eine Komponente, die Sie verwenden können, in mehr als einem Programm, das können Sie veröffentlichen, zu importieren, bekommen Sie eine URL, etc. Es macht also Sinn, für die es ein eigenes Verzeichnis, so viel wie ein Programm, das ein Verzeichnis.
InformationsquelleAutor der Antwort Denys Séguret
Auch, wenn alles, was Sie versuchen zu tun brechen die wichtigsten.go-Datei in mehrere Dateien, dann geben Sie einfach den Namen der anderen Dateien "package main", solange Sie nur definieren Sie die main-Funktion in eine dieser Dateien, Sie sind gut zu gehen.
InformationsquelleAutor der Antwort dkinzer
stellen Sie sicher, dass Ihr Paket wird installiert in Ihrem $gopath Verzeichnis oder die bereits in Ihrem Arbeitsbereich.
Beispiel: wenn Ihr $gopath = "c:\go" stellen Sie sicher, dass das Paket innerhalb "C:\Go\src\pkg\github.com"
InformationsquelleAutor der Antwort msoliman