Crear .exe de un archivo .c en GNU/Linux

Bueno, el caso es que me estoy poniendo a estudiar un poco mas seriamente el lenguaje C y tras tener varios programas básicos escrito y funcionando perfectamente en mi Archlinux, he querido probarlos en Windows. Casi toda la información que en encontrado por la red para compilar un .exe desde GNU/Linux esta obsoleta, los paquetes ya no existen o incluso el mismo yaourt me dice que estan sin soporte o huerfanos.

Dando mil y una vueltas por la red decidí ir a pedir consejo a pacman en una busqueda y allí obtuve la solución:

$ pacman -Ss mingw

y nos tira el resultado

captura-mingw1

Ya sabemos que instalar

$ sudo pacman -S mingw-w64-gcc

Este paquete trae un monton de compiladores, yo solo uso el de C a .exe pero podeis mirar aquí para ver si necesitais otro.

$ ls /usr/bin/ | grep mingw
i686-w64-mingw32-addr2line
i686-w64-mingw32-ar
i686-w64-mingw32-as
i686-w64-mingw32-c++
i686-w64-mingw32-cc
i686-w64-mingw32-c++filt
i686-w64-mingw32-cpp
i686-w64-mingw32-dlltool
i686-w64-mingw32-dllwrap
i686-w64-mingw32-elfedit
i686-w64-mingw32-g++
i686-w64-mingw32-gcc
i686-w64-mingw32-gcc-4.8.2
i686-w64-mingw32-gcc-ar
i686-w64-mingw32-gcc-nm
i686-w64-mingw32-gcc-ranlib
i686-w64-mingw32-gcov
i686-w64-mingw32-gfortran
i686-w64-mingw32-gnat
i686-w64-mingw32-gnatbind
i686-w64-mingw32-gnatchop
i686-w64-mingw32-gnatclean
i686-w64-mingw32-gnatfind
i686-w64-mingw32-gnatkr
i686-w64-mingw32-gnatlink
i686-w64-mingw32-gnatls
i686-w64-mingw32-gnatmake
i686-w64-mingw32-gnatname
i686-w64-mingw32-gnatprep
i686-w64-mingw32-gnatxref
i686-w64-mingw32-gprof
i686-w64-mingw32-ld
i686-w64-mingw32-ld.bfd
i686-w64-mingw32-nm
i686-w64-mingw32-objcopy
i686-w64-mingw32-objdump
i686-w64-mingw32-ranlib
i686-w64-mingw32-readelf
i686-w64-mingw32-size
i686-w64-mingw32-strings
i686-w64-mingw32-strip
i686-w64-mingw32-windmc
i686-w64-mingw32-windres
x86_64-w64-mingw32-addr2line
x86_64-w64-mingw32-ar
x86_64-w64-mingw32-as
x86_64-w64-mingw32-c++
x86_64-w64-mingw32-cc
x86_64-w64-mingw32-c++filt
x86_64-w64-mingw32-cpp
x86_64-w64-mingw32-dlltool
x86_64-w64-mingw32-dllwrap
x86_64-w64-mingw32-elfedit
x86_64-w64-mingw32-g++
x86_64-w64-mingw32-gcc
x86_64-w64-mingw32-gcc-4.8.2
x86_64-w64-mingw32-gcc-ar
x86_64-w64-mingw32-gcc-nm
x86_64-w64-mingw32-gcc-ranlib
x86_64-w64-mingw32-gcov
x86_64-w64-mingw32-gfortran
x86_64-w64-mingw32-gnat
x86_64-w64-mingw32-gnatbind
x86_64-w64-mingw32-gnatchop
x86_64-w64-mingw32-gnatclean
x86_64-w64-mingw32-gnatfind
x86_64-w64-mingw32-gnatkr
x86_64-w64-mingw32-gnatlink
x86_64-w64-mingw32-gnatls
x86_64-w64-mingw32-gnatmake
x86_64-w64-mingw32-gnatname
x86_64-w64-mingw32-gnatprep
x86_64-w64-mingw32-gnatxref
x86_64-w64-mingw32-gprof
x86_64-w64-mingw32-ld
x86_64-w64-mingw32-ld.bfd
x86_64-w64-mingw32-nm
x86_64-w64-mingw32-objcopy
x86_64-w64-mingw32-objdump
x86_64-w64-mingw32-ranlib
x86_64-w64-mingw32-readelf
x86_64-w64-mingw32-size
x86_64-w64-mingw32-strings
x86_64-w64-mingw32-strip
x86_64-w64-mingw32-windmc
x86_64-w64-mingw32-windres

El que yo usare y que me ha funcionado es este i686-w64-mingw32-gcc para pasar de .c a .exe para un S.O. windows de 32 bits y se usaria así:

$ i686-w64-mingw32-gcc archivo.c -o archivo.exe

captura-mingw2

Y ya lo tendremos compilado en .exe

Aquí una muestra corriendo en el cmd de wine

captura-mingw3

Y si lo vamos a usar demasiado lo suyo seria incluir un alias en nuestro bashrc para no tener que escribir tanto, pero eso ya sabeis hacerlo 😉

2 comentarios en “Crear .exe de un archivo .c en GNU/Linux”

  1. Pingback: Bitacoras.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
Scroll al inicio