Das ist das seltsamste Problem, das ich jemals erlebt habe. Ich habe meine Go-Entwicklungsumgebung auf einer virtuellen Windows 2008 R2-Maschine eingerichtet. Ich starte es nicht einmal neu und führe Windows Update nicht aus.
Heute habe ich festgestellt, dass ich Go-Programme nicht mehr ausführen kann. Ich kann Komponententests mit 'go test' erfolgreich erstellen und ausführen. Wenn Sie jedoch ein kompiliertes Go-Programm ausführen (sogar Hallo Welt), wird ein Popup-Fenster mit dem Titel "Nicht unterstützte 16-Bit-Anwendung" angezeigt. Die Fehlermeldung lautet wie folgt:
Die Version dieser Datei ist nicht mit der Windows-Version kompatibel du rennst. Überprüfen Sie die Systeminformationen Ihres Computers, um zu sehen ob Sie eine x86 (32-Bit) oder x64 (64-Bit) Version des Programm, und wenden Sie sich dann an den Software-Publisher.
Das Ergebnis ist das gleiche, egal welche Version von Go ich verwende (x86 / x64). Beachten Sie auch, dass ich keine IDE verwende. Ich rufe go.exe auf, um von der Befehlszeile zu bauen / zu testen.
Ich kann mich damit nicht abfinden, da das Ausführen von "go test" gut funktioniert.
Irgendwelche Gedanken?
BEARBEITEN:
Hier ist die Konsolenausgabe, wenn ich das Programm erstelle und ausführe:
Interessanterweise schlägt dumpbin vor, dass etwas mit der ausführbaren Datei nicht stimmt
%Vor%Und hier ist der vollständige Quellcode:
%Vor%EDIT2:
Ich habe Go zweimal ohne Effekt neu installiert.
Die Go-Programmiersprachenspezifikation
Ein vollständiges Programm wird erstellt, indem ein einzelnes, nicht importiertes Paket verknüpft wird nannte das Hauptpaket mit allen Paketen, die es importiert, transitiv. Das Hauptpaket muss den Paketnamen main haben und deklarieren eine Funktion, die keine Argumente annimmt und keinen Wert zurückgibt.
%Vor%Die Programmausführung beginnt mit der Initialisierung des Hauptpakets und dann Aufruf der Funktion main. Wenn dieser Funktionsaufruf zurückkehrt, wird der Programm beendet. Es wartet nicht auf andere (Nicht-Haupt) Göroutinen vervollständigen.
Verwenden Sie package main
, nicht package playground
. Zum Beispiel
playground.go
:
playground/another.go
:
Ausgabe:
%Vor%Tags und Links go