¿Se puede instalar el compilador Go en Windows?


94

He estado buscando en golang.org un compilador de Windows, pero parece que no puedo encontrarlo. Solo puedo ver compiladores de Linux y OS X. ¿Alguien sabe si la programación de Go se puede hacer en Windows o es algo que Google aún no ha implementado?

Actualización: parece que a partir de ahora (noviembre de 2012) golang.org tiene lanzamientos binarios oficiales para Windows 32 / x86_64.


groups.google.com/group/golang-nuts : allí encontrará la respuesta.
kar

2
gofmt.com/compile.html si desea probar alguna programación Go no destructiva en Windows. Puede compilar, vincular y ejecutar sus programas y mostrarle el resultado. Por favor envíeme un mensaje privado si encuentra alguna vulnerabilidad en ese sitio. ¡Gracias!
Randy Sugianto 'Yuku'

Actualización: el compilador erGo se lanzó para pruebas beta esta semana. El desarrollador Russel Newquist respondió en los comentarios a continuación. newquistsolutions.com/ergo
nathan

4
Estoy votando para cerrar esta pregunta como fuera de tema porque el sitio web golang.org ofrece paquetes oficiales de Windows desde la primera versión oficial (1.0).
icza

Respuestas:


54

Ahora hay instaladores para Windows, consulte Ir en Windows

HelloWorld.go

package main

func main() {
    println("Hello World!");
}

Compile con 8g, vincule con 8ly luego ejecute. Ejemplo:

8g HelloWorld.go
8l -o HelloWorld.exe HelloWorld.8
HelloWorld

Otra compilación de Win32 de Go (publicada el
4 de

Desafortunadamente, no puedo hacer que este puerto funcione correctamente. el enlazador 8l siempre se queja de que falta runtime.a y también se bloquea poco después de la invocación.
greatwolf

1
@Victor: Acabo de configurar esto (el 2010-12-11) y funciona bien para compilar y vincular los ejemplos de HelloWorld, PrimeSieve y Wiki. Y se ejecutan los tres programas.
Lawrence Dol

1
El puerto mingw parece funcionar sin necesidad de instalar ningún entorno especial ( code.google.com/p/gomingw/downloads/list ). Al menos compila y vincula varios ejemplos que he probado.
Lawrence Dol

1
Gracias a Jonas por la agradable y útil respuesta.
bhadra

23

Aún no ha aparecido en las preguntas frecuentes de Go Lang, pero del registro de cambios :

¿Por qué Go no se ejecuta en Windows? Entendemos que una fracción significativa de computadoras en el mundo ejecutan Windows y sería genial si esas computadoras pudieran ejecutar programas Go. Sin embargo, el equipo de Go es pequeño y no tenemos los recursos para hacer un puerto de Windows en este momento. Estaríamos más que dispuestos a responder preguntas y ofrecer consejos a cualquiera que desee desarrollar una versión de Windows.


5
Aunque esta respuesta tiene muchos votos a favor, ahora está desactualizada.


7

A pesar de que Go tiene solo dos días, esta pregunta ya se ha convertido en una de las preguntas frecuentes de la lista de distribución de Go. (Desafortunadamente, aún no se ha agregado a la lista de preguntas frecuentes en el sitio web).

Básicamente, Go lo hace un grupo muy pequeño de personas, por lo que simplemente no tienen el tiempo ni los recursos para hacer un puerto de Windows. Ese grupo muy pequeño de personas también son las personas que inventaron Unix, por lo que ese fue un primer objetivo natural.


AFAIK, desarrollan Go durante su 20% de tiempo, no a tiempo completo. (Eso es lo que leí, de todos modos.) De todos modos, mi respuesta estaba destinada a ser muy-lengua-muy-profunda-en-la-mejilla.
Jörg W Mittag

2
En realidad, la página del historial indica que, si bien comenzó como un proyecto de tiempo libre, ahora es un proyecto de tiempo completo para al menos algunos de los desarrolladores. Edité la respuesta para eliminar básicamente los comentarios sobre las limitaciones de tiempo parcial.
Jörg W Mittag

Y te estoy votando por eso :)
OscarRyz

¿Ellos inventaron Unix? ¿Entonces este es un proyecto de jubilación?
Henk Holterman

10
Bueno, también inventaron Plan9, el sucesor de Unix. E Inferno, el sucesor de Plan9. Y C. Y Limbo, el lenguaje de programación de sistemas de recolección de basura en el que está escrito Inferno. (Entonces, en cierto sentido, el sucesor de C y predecesor de Go.) Y el lenguaje de programación concurrente de Newsqueak (también en cierto sentido un predecesor de Go, especialmente las Goroutines.) Y el recolector de basura muy concurrente que se usa en Limbo, Inferno y también en algunas implementaciones de ML estándar. Y UTF-8. Entonces, no es como si no hubieran estado ocupados en los 40 años entre Unix y Go.
Jörg W Mittag

3

Entonces, si usted, como yo, está en Windows la mayor parte del tiempo y desea programar algo de Go ahora mismo, puede hacerlo en una máquina virtual. Utilizo VirtualBox ejecutando Ubuntu en modo sin apariencia. Ya lo tenía configurado porque me gusta más Linux que Windows para muchas cosas.

Construir y trabajar con Go ha sido totalmente sencillo para mí. Tengo un Bash abierto en una terminal para ejecutar mi compilación y probar mi aplicación. El directorio de origen es una carpeta compartida entre Windows y Linux (una función de VirtualBox, pero estoy seguro de que VMWare tiene lo mismo). Edito mi código en Komodo Edit en Windows y uso Mercurial para el mismo código fuente en ambos sistemas operativos.


Como se sugirió anteriormente, obtuve ubuntu en la máquina de Windows (con virtualbox) y luego me puse en marcha.
user132797

3

Aún no.

Los autores de Go tienen raíces muy muy profundas en sistemas operativos que no son Windows (Trivia: quién de ellos creó nada menos que el propio sistema operativo UNIX)

Por lo tanto, no espere tener un puerto de Windows de ellos en el corto plazo.

El lenguaje es de código abierto, por lo que será solo cuestión de tiempo (hágalo de 6 a 8 meses ehrm) para que esté disponible una implementación de Windows.


2
Su conexión entre un autor de Unix que escribe el compilador en su tiempo libre y "no espere un puerto de Windows" es interesante, dado que señalan en el registro de cambios (vea la respuesta de mbarnett) que es solo porque no tienen los recursos .
Jed Smith

2
Solo otra redacción (suave) para "no me importa".
ttvd

1
Sí, es como si Linus creara un puerto de git para Windows. Eso nunca sucederá (aunque el puerto está siendo creado por otros)
OscarRyz

0

Aunque no hay una versión de Windows en este momento, presumiblemente se puede compilar usando Cygwin en una plataforma Windows.


1
Podría compilarlo bajo cygwin con muchas modificaciones, pero incluso entonces, terminaría con un compilador 6g / 8g que genera ELF, no un binario nativo de Windows. Sin embargo, este sería un buen primer paso. code.google.com/p/golang-on-cygwin Una vez que las compilaciones son exitosas, el siguiente paso sería arreglar el compilador para generar código ejecutable de Windows.
Alan S


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.