Ich habe ein kleines Programm, das aus drei Dateien besteht, die alle zum selben Paket (main) gehören, aber wenn ich "go build main.go" mache, ist der Build nicht erfolgreich. Wenn es nur eine Datei war (main.go), hat alles gut funktioniert. Nachdem ich mir einige Mühe gegeben habe, den Code zu trennen, kann der Compiler anscheinend nicht das Material finden, das aus main.go entnommen und in diese beiden anderen Dateien (die sich im selben Verzeichnis wie main.go befinden) eingefügt wurde. . Was zu "undefinierten" Typ "-Fehlern führt.
Wie kompiliere ich dieses Programm, das aus mehreren Dateien besteht?
quelle
Wenn Sie beispielsweise Code von
main.go
in trennenmore.go
, übergeben Sie diese Datei einfach auch ango build
/go run
/go install
.Also, wenn Sie zuvor gelaufen sind
du jetzt einfach
Als weitere Information:
Zustände:
Beachten Sie dies
go build
undgo install
unterscheiden Sie sichgo run
darin, dass die ersten beiden Zustände Paketnamen als Argumente erwarten , während letztere go-Dateien erwarten . Die ersten beiden akzeptieren jedoch auch go-Dateien wie go install.Wenn Sie sich fragen: Build erstellt nur
build
die Pakete / Dateien, erstelltinstall
Objekt- und Binärdateien in Ihrem GOPATH undrun
kompiliert und führt Ihr Programm aus.quelle
Du könntest auch einfach rennen
in Ihrem Projektordner myproject / go / src / myprog
Dann können Sie einfach tippen
um deine App auszuführen
quelle
chmod +x
Berechtigung für diese Datei hinzu, um sieSeit Go 1.11+ wird GOPATH nicht mehr empfohlen. Die neue Methode verwendet Go-Module.
Angenommen, Sie schreiben ein Programm mit dem Namen
simple
:Erstellen Sie ein Verzeichnis:
Erstellen Sie ein neues Modul:
Legen Sie alle Ihre Dateien in diesem Verzeichnis ab.
Führen Sie zum Schluss Folgendes aus:
Alternativ können Sie ein ausführbares Programm erstellen, indem Sie es erstellen:
Weitere Informationen finden Sie hier .
quelle
Sie können verwenden
beide funktionieren auch Sie können verwenden
quelle
Das hängt von Ihrer Projektstruktur ab. Am einfachsten ist jedoch:
dann laufen
./myproject
.Angenommen, Ihre Projektstruktur sieht so aus
Dann gehen Sie einfach in das Projektverzeichnis und führen es aus
dann
./myproject
auf Shell laufen .oder
Angenommen, Ihre Hauptdatei ist in einem Unterverzeichnis wie a verschachtelt
cmd
dann wirst du rennen
quelle
Jep! Das ist sehr einfach und hier kommt die Paketstrategie ins Spiel. Meines Wissens gibt es drei Möglichkeiten. Ordnerstruktur:
GOPATH / src / github.com/ abc / myproject / adapter / main.go pkg1 pkg2 Warnung: Der Adapter kann nur das Paket main und sun Verzeichnisse enthalten
Die exe-Datei wird in dem Verzeichnis erstellt, in dem Sie sich gerade befinden.
quelle