2016-05-26 17 views
-1

Ich habe ein Go-Projekt, das aus separaten Dateien besteht (jede mit einer Hauptfunktion) innerhalb des Projektordners. Ursprünglich sollte es als go run file1.go ausgeführt werden. Aber jetzt brauche ich einen Build dafür wie normale Projekte. Das Erstellen eines separaten Projekts für jede Datei ist dumm.Standalone-Installation für Datei wie go run myfile.go

Die go run kompiliert die Eingabedatei in eine temporäre ausführbare Datei und führt sie aus. Was ist der Kompilierungsschritt, der go run tut. Ich muss verschiedene Dateien als separate ausführbare Dateien (mit einem von mir angegebenen Namen) installieren. Kann jemand die Schritte dazu geben, wie man das macht?

Danke.

+1

Haben Sie [Wie schreibe ich Go Code] (https://golang.org/doc/code.html) gelesen? Sie verwenden 'go build' oder' go install'. – JimB

+0

@JimB Ich verwende go install für fast alle Projekte. Dazu möchte ich wissen, welche Direktiven ich verwenden muss, um den gewünschten Effekt zu erzielen - wähle Datei als Installationsquelle und Name der ausführbaren Ausgabedatei. – user568109

+0

Normalerweise würde man einfach ein Unterverzeichnis für jede Hauptdatei erstellen (sie unter ein anderes Verzeichnis mit dem Namen 'cmd /' zu legen ist üblich), und 'go install 'jedes davon nach dem Importpfad. Wenn du jede Datei direkt erstellen willst, warum gehst du dann nicht einfach auf -o binfile file1.go'? – JimB

Antwort

1

Wie in den Kommentaren sehen, können Sie

go install ./... 

Wenn Ihr Arbeitsverzeichnis ist, verwenden Sie nicht verwenden, wo alle Ihre Pakete derzeit befindet

go install path/to/your/packages/... 

Das Wichtigste sind die drei Punkte " ... ", um anzuzeigen, dass Sie alle Pakete auch aus Unterverzeichnissen erstellen und installieren möchten.

Dies erstellt ausführbare Dateien aller Ihrer Pakete in $ GOPATH/bin /.

+0

Fügen Sie auch die Verwendung von cmd Unterverzeichnis in dem Projekt, das ich nicht wusste und nicht in der Dokumentation Golad erwähnt. – user568109