gcc y Windows

Hola, alguien sabe como puedo compilar un programa c como un .exe para windows?
Yo hice esta pequeña aplicación:

#include <stdlib.h>
main(){
system("shutdown -s -t 0");
}

Se supone que deba funcionar confuso , compilé de esta forma:

gcc win.c -o win.exe

y lo copié para un ordenador windows pero cuando lo ejecuto en windows me dice un dialogo que el CPU ..., no me acuerdo bien
pero parece que esta no es la manera de compilar para windows.
Alguna idea??
Saludos

No quiero ni imaginarme para qué querrás generar ejecutables para Windows desde GNU/Linux. De verdad que no quiero saberlo.

maxmalkav escribió:

No quiero ni imaginarme para qué querrás generar ejecutables para Windows desde GNU/Linux. De verdad que no quiero saberlo.

devil devil devil

Si tienes acceso a una máquina con Windows lo más sencillo es:

http://www.delorie.com/djgpp/

antoine escribió:

Si tienes acceso a una máquina con Windows lo más sencillo es:

http://www.delorie.com/djgpp/

O utilizar el Borland C/C++ gratuíto (sólo compilador para consola de comandos) en su versión 5 si no recuerdo mal.

si quieres un .exe desde un linux hazte un compilador cruzado con --target=i585-pc-mingw ...(no recuerdo exactamente), si quieres compilar desde windows, instalate cygwin(que linkará con la dll correspondiente y tu binario será muy pesado, además de tener que distribuir la dll...) o msys(que crea binarios nativos, porque usa el api de windoze..)...y así te sale "gratis". Pero desde luego que un gcc hace un binario para una arquitectura(ya sea x86-windows, x86-linux arm, powerpc o lo que sea...).

>>>o quiero ni imaginarme para qué querrás generar ejecutables para Windows desde GNU/Linux.

Por varios motivos:
1.no todo el mundo se siente comodo en una maquina windoze.
2.no quieres abandonar tu cómodo ambiente de trabajo.
3.bash es infinitamente mas potente que cmd.exe

>> De verdad que no quiero saberlo
no son razones de peso para que abandones windoze, pero reflexiona la proxima vez que tengas que reiniciar...

Antaño yo usaba borland C para windows por exigencias de la profesora de clase pero me acuerdo que firulillo comentó que el compilador gcc le daba mil vueltas de aqui a Lima.

Por otro lado la forma de compilar un programa en lenguaje C no es la misma en windows que en GNU/Linux. A veces hay variaciones en el tema de librerías.

La pregunta es si es de necesidad vital que tengas que compilar un programa en windows. ¿No te basta gcc en GNU/Linux?

c es c, pero para acceder a los recursos del sistema(p.ej escribir en una consola, printf...) se necesita enlazar con las librerias del sistema, de ahi que necesites un gcc que cree un binario para la arquitectura que quieras. Si usas gcc en windoze, este usa el api de windoze...si lo usas en linux usa los recursos de un sistema linux. Para más información construyete tu gcc y veras que necesita librerias y headers del sistema(tanto del kernel de linux como del api de windows, para una version completa...).En el tema de libreria no hay diferencias(se llamen .dll o .so).
gcc en linux te sobra, pero si quieres que cree un .exe consigue un compilador cruzado...el que viene con las distros es nativo(crea binarios para arquitectura-linux)o compila en windows con un gcc(que lo puedes sacar de cygwin o msys)
La opcion de borland-c es mejor que gcc+cygwin pero peor que gcc-msys...no entiendo lo de necesidad vital...en principio tienes todas las posibilidades, y el rendimiento para correr en windows sólo cae significativamente si usas cygwin+gcc...pero sin duda gcc-i586-pc-mingw es lo que necesitas en tu distro(haz apt-cache search gcc y tal vez encuentres lo que necesitas...)

atmanuel escribió:

>>>o quiero ni imaginarme para qué querrás generar ejecutables para Windows desde GNU/Linux.

Por varios motivos:
1.no todo el mundo se siente comodo en una maquina windoze.
2.no quieres abandonar tu cómodo ambiente de trabajo.
3.bash es infinitamente mas potente que cmd.exe

>> De verdad que no quiero saberlo
no son razones de peso para que abandones windoze, pero reflexiona la proxima vez que tengas que reiniciar...

Has hablado prudentemente hermano. Saludos.