2012-03-30 4 views

Antwort

2

Siehe Wenn 8g ohne Argumente ausgeführt wird, druckt es so etwas wie dieses:

gc: usage: 8g [flags] file.go... 
flags: 
    ... 
    -m print optimization decisions 
    -o file specify output file 
    -p assumed import path for this code 
    ... 

Beachten Sie, dass [flags] vor file.go positioniert sind. Diese Reihenfolge muss beachtet werden, wenn Argumente übergeben werden. Dies ist im Gegensatz zu gcc, die Optionen und Dateien in beliebiger Reihenfolge akzeptiert.

+0

Leider ist dies eher willkürlich und nicht benutzerfreundlich. gcc ist der Standard, gegen den andere Befehlszeilen in intuitivem Verhalten entweder bestehen oder fehlschlagen. Dachten sie, dass jemand eine Datei namens -foo kompilieren und sie auf -foo.8 kompilieren möchte? –

+2

@WarrenP, obwohl viele Programme jetzt die Parameter in irgendeiner Reihenfolge nehmen, gibt es immer noch eine Menge, die nicht. Als Faustregel gilt, dass immer Optionen vor den Dateien angegeben werden. – Shahbaz

+0

@WarrenP Ich kenne den genauen Grund für diese Konvention nicht, aber es wird überall in Go verwendet. Zum Beispiel besagt die Dokumentation für das Paket 'flag', dass" das Flag-Parsing kurz vor dem ersten Nicht-Flag-Argument stoppt ". –

1

basierend auf Dokumentation

http://golangtutorials.blogspot.com/2011/05/checking-we-have-go-setup-right.html und

Multiline command.go in SciTE und

http://sourcetree.wordpress.com/tag/go/

können Sie versuchen,

>8g test1.go 
>8l -o test1.8 
>./8.out 
+0

Tut mir leid, versehentlich markiert diese, die darauf hinweist, was ich bereits wusste; das ist, dass es gut funktioniert ohne -o in '8g'. Geändert akzeptieren, um zu antworten, was mir genau sagt, was ich zuerst falsch gemacht habe. –