2015-02-08 13 views
5

Ich habe ein Projekt in github.com/user namens Projekt:Wie binäre Pakete in Golang zu erstellen?

src/ 
    github.com/user/project 
     sub1/ 
      main.go 
      sub1.exe (??) 
     sub2/ 
      main.go 
      sub2.exe (??) 

Ich versuche, das Paket in meinem Projekt zu kompilieren. Wenn ich:

$ cd github.com/user/project/sub1 
$ go build 

Nichts passiert. Go Build scheint fertig zu sein, ohne sich zu beschweren, aber es gibt keine ausführbare Datei. Wie kann ich Pakete in ausführbare Dateien erstellen?

"go Version go1.3 windows/amd64"

+1

Wenn main.go eine main() -Funktion hat, sollte es die ausführbare Datei erstellen und in Windows sub1.exe nennen. Ist nicht sub1.exe was Sie suchen? Entfernen Sie es und führen Sie 'go build' erneut aus, um zu sehen, ob es erstellt wurde. – siritinga

+0

Hm, es gibt keine ausführbare Datei. Ich bin im Verzeichnis des Pakets. Ich benutze Windows, aber aufbauend auf der cygwin Kommandozeile. Aber selbst wenn Windows cmd verwendet wird, gibt es keine ausführbare Datei. – Kiril

Antwort

5

Es spielt keine Rolle, wenn Sie Ihre Datei main.go oder shubudoo.go nennen. Das einzige, was zählt, wenn Sie eine ausführbare Datei (einen Befehl) erstellen möchten, ist, dass Ihre Dateien mit package main beginnen. Eine weitere Sache: Go hat absolutkeine Vorstellung von "Unterpaket": Alle Pakete sind gleich für den Compiler. Die Dateisystemverschachtelung dient nur Ihrer Bequemlichkeit.

+0

Also, ist es nicht möglich, ein Main() in einem anderen Paket als Main? – Kiril

+0

https://camlistore.googlesource.com/camlistore/+/master/cmd/camget/camget.go – Kiril

+0

Der Link ist, was ich meinte. Es ist ein neues Hauptpaket in einem Projekt. – Kiril

Verwandte Themen