2016-03-29 6 views
0

In Golang 1.6, wenn ich kompilieren von meinem 64-Bit-Arch auf 32-Bit für Linux, setzt der go install Befehl die ausführbare Datei in bin/linux_386/<exe>.Golang 1.6 Kreuz Kompilieren

Gibt es eine Möglichkeit, es stattdessen in bin/ zu setzen? Wenn ich die 32-Bit-Umgebung einbinde, wird sie in bin/ gehen. Ich möchte, dass die Exe in den gleichen Speicherort wechselt, unabhängig davon, ob ich die Kompilierung zu 32-Bit außerhalb der Sandbox übersetze oder nativ in der 32-Bit-Sandbox kompiliere.

Meine Problemumgehung ist jetzt, die linux_386 Dir zu ., wie in ln -s . linux_386 zu verknüpfen.

+0

Go inkompatible Binärdateien in Ihrem PATH zu vermeiden versucht setzen. Was ist falsch daran, es im Verzeichnis bin/linux_386 zu haben? – JimB

+0

Ich habe zwei Möglichkeiten, die ausführbare Datei zu erstellen. Eine in der 32-Bit-Sandbox verwendet die 32-Bit-Version von go. Eine außerhalb der Sandbox verwendet die 64-Bit-Version von go, die kompiliert. Ich möchte beide die ausführbare Datei an den gleichen Ort legen. –

Antwort

1

Sie können mit nicht gehen installieren, tun es Sie können jedoch manuell:

go build -o $GOPATH/bin/<exe> $GOPATH/src/your/<pkg> 
+0

Wenn Sie die Option '-i' hinzufügen, werden auch Abhängigkeiten von der Zeit installiert, die Ihnen im Grunde das Verhalten von 'go install' geben – JimB