2016-05-12 18 views
1

Ich versuche, die neueste Version (Spitze des Master-Zweigs) von Go aus der Quelle zu bauen.Error Gebäude Go Compiler von Quelle

Die offizielle Go-Dokumentation (https://golang.org/doc/install/source) besagt, dass Sie Go 1.4-Binärdateien herunterladen sollten, um eine neuere Version zu erstellen. Es sollte jedoch möglich sein, alles aus der Quelle zu erstellen.

Um dies zu tun, habe ich Variablen in .bashrc:

PATH="$HOME/go/bin:$PATH" 
export GOPATH=$HOME 

dann bauen auf 1,4 von Quelle gehen:

source ~/.bashrc 
git clone https://go.googlesource.com/go 
mkdir ~/go1.4 
cd ~/go 
git archive --format=tar go1.4.3 |tar -xv -C ~/go1.4 
cd ~/go1.4/src 
./make.bash 

und schließlich die neueste Version bauen:

cd ~/go/src/ 
GOROOT_BOOTSTRAP=$HOME/go1.4 ./make.bash 

Ich erinnere mich, dass ich das vor Monaten ohne Probleme gemacht habe, aber heute bekomme ich diese Fehler beim Bauen von 1. 4 make.bash:

# cmd/pprof 
.../go1.4/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? 
.../go1.4/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? 
runtime/cgo(.text): unexpected relocation type 298 
runtime/cgo(.text): unexpected relocation type 298 
... 

Gibt es etwas falsch in meiner Methode?

+0

1. Niemals GOROOT einstellen. 2 Erstellen Tipp wie 'GOROOT_BOOTSTRAP =/Pfad/zu/go1.6/go/tool./ make.bash' – Volker

+0

Auch nicht go1.4/bin in Ihrem Pfad. – JimB

+0

@Volker: ok ich benutze nicht GOROOT, aber GOROOT_BOOSTRAP sollte auf einen bestehenden GO-Compiler zeigen. Ich habe die Frage aktualisiert, aber das Problem bleibt bestehen. – psadac

Antwort

0

Die Fehlermeldungen weisen auf CGO und Umgebungsvariablen, die make.bash steuern, werden am Anfang der Datei erklärt:

CGO_ENABLED: während des Build-Kontrollen CGO Nutzung. Setzen Sie es auf 1 , um alle cgo-bezogenen Dateien, .c und .go-Dateien mit "cgo" build directive in den Build aufzunehmen. Setzen Sie es auf 0, um sie zu ignorieren.

also, wenn Sie CGO deaktivieren, während GO Gebäude 1.4:

cd ~/go1.4/src 
CGO_ENABLED=0 ./make.bash 

alles funktioniert und die Tests bestanden.

Verwandte Themen