webentwicklung-frage-antwort-db.com.de

Go 1.5+: Fehler - Importiert die Laufzeit: C-Quelldateien sind nicht zulässig, wenn cgo oder SWIG nicht verwendet wird

Mein Programm war perfekt mit go 1.4.2. Nach der Installation von go 1.5 erhalte ich einen Fehler.

importiert Laufzeit: C-Quelldateien sind nicht zulässig, wenn cgo oder SWIG nicht verwendet werden: atomic_AMD64x.c defs.c float.c heapdump.c lfstack.c malloc.c mcache.c mcentral.c mem_linux .c mfixalloc.c mgc0.c mheap.c msize.c os_linux.c panic.c parfor.c proc.c runtime.c signal.c signal_AMD64x.c signal_unix.c stack. c string.c sys_x86.c vdso_linux_AMD64.c

Der Fehler ist nicht programmabhängig. Sogar ein "Hallo Welt" -Programm wirft den gleichen Fehler.

18
user3094829

Entfernen Sie die Old 1.4.x go-Installation und installieren Sie dann go 1.5.

Das gleiche Problem hatte ich nach der Installation von go 1.5. Das Problem ist, dass ich go 1.5 an derselben Stelle von 1.4.2 installiert habe. Go 1.5 verwendet C nicht mehr und wenn alte C-Installationsdateien vorhanden sind, wird der Fehler angezeigt, wenn Sie angezeigt werden.

wenn Sie möchten, dass auch die alte Installation vorhanden ist, installieren Sie 1.5 an einem anderen Speicherort und setzen Sie GOROOT auf diesen Speicherort.

Ich hoffe es hilft.

Edit 1: Für Linux-Benutzer:

wenn Sie go1.5 * .tar.gz heruntergeladen haben, haben Sie Folgendes getan: 

tar -C/usr/local/-xvf go1.5.linux-AMD64.tar.gz

Ihre alten Ordner-C-Dateien werden nicht gelöscht. Der korrekte Vorgang lautet: 

Erstens: Sie sollten Ihren alten go-Ordner löschen.

Sudo rm -rf/usr/local/go /

Zweitens: Dann renne 

tar -C/usr/local/-xvf go1.5.x.linux-AMD64.tar.gz

52
Mayank Patel

Wenn Sie brew für ein Upgrade verwenden, gehen Sie zu Schritt 1.5. Hier ist mein Schritt, damit es funktioniert:

  1. Pkg-Ordner in% GOPATH% entfernen
  2. Laden Sie die Terminalsitzung (Konsole) erneut, und stellen Sie sicher, dass Go env zum Ordner Go 1.5 wechselt.

Übrigens: Sie müssen das Gleiche tun, wenn Sie von Go 1.5 über Go__ 1.4 über brew switch go 1.4.2 wechseln möchten.

5
Evan Lin

Ich habe das gleiche Problem, weil ich zwei golang-Versionen auf meiner Maschine installiert habe, eine von einer offiziellen Seite und die andere von einem Homebrew.

Und das GOROOT passt nicht zum Go-Binärprogramm, ich tausche das GOROOT einfach durch das richtige aus, dann fertig.

export GOROOT=/usr/local/opt/go/libexec # install via brew
2
RoCry

Ich habe dieses Problem in meinem Editor erfahren (sublime Text 2). Ich rufe beim Speichern nach dem Erstellen von go auf, es scheint, dass mein Editor darauf hinweist, dass er 1.4.x anstelle der neu installierten Version 1.5 verwendet. 

  • Ich löste das Problem, indem ich meinen Editor einfach aufgab und wieder öffnete. 
1
user2737876