Cómo compilar programas de Linux en Windows con Cygwin

Windows y Linux son dos sistemas muy diferentes y, como tal, a menudo no es fácil transferir programas escritos para uno al otro, especialmente cuando se trata de programas GUI. Aunque hay muchas bibliotecas y SDK diferentes de plataformas cruzadas, los programas nativos escritos sin la portabilidad en mente son bastante difíciles de migrar.

Cuando se trata de compilar y ejecutar programas escritos para Linux en Windows, existe una solución conocida como Cygwin. El proyecto Cygwin es una colección de las herramientas y compiladores más comunes (incluido el shell bash y la cadena de compiladores GNU) para Windows. También incluye una biblioteca que proporciona una capa de compatibilidad para que se puedan compilar programas que llaman a API específicas de Linux. Cygwin no es un emulador ni una máquina virtual, y no permite que los archivos binarios de Linux se ejecuten en Windows sin antes volver a compilarlos.

Visite la página de instalación de Cygwin y descargue el ejecutable de instalación de 32 bits o 64 bits (según la variante de Windows que esté utilizando). Ejecute el programa de instalación. Haga clic en Siguiente y en Siguiente nuevamente (para “Instalar desde Internet”). El directorio predeterminado es “C: cygwin”. Se puede cambiar si es necesario, pero a menos que tenga una razón específica para cambiarlo, el valor predeterminado es mejor. Haga clic en Siguiente, Siguiente y Siguiente nuevamente.

El proyecto Cygwin tiene sitios espejo en todo el mundo; elija uno que crea que se adaptará mejor a su ubicación y haga clic en Siguiente. Ahora debe elegir qué paquetes instalar. Para compilar programas simples de Linux en Windows, necesitará GNU Compiler Chain (GCC) que proporciona un compilador C y C ++.

Escriba “gcc” en el cuadro de búsqueda y luego haga clic en el pequeño signo más junto a “Devel” en la lista de paquetes. Busque “gcc-core” y “gcc-g ++” y haga clic en “Omitir” para cada uno. La palabra “Omitir” cambiará a un número de versión y el signo “n / a” en el “¿Bin?” La columna se convertirá en una casilla marcada. Escriba “make” en el cuadro de búsqueda y busque “make” en “Devel”. Haga clic en “Omitir” para marcarlo para su instalación. Busque “wget” y márquelo para instalarlo desde “Web”. Para crear el siguiente ejemplo, también necesitaremos “libiconv;” búsquelo y márquelo para instalarlo.

Haga clic en Siguiente. Luego, el instalador verá qué otros paquetes deben instalarse para resolver las dependencias. Haga clic en Siguiente para aceptar las recomendaciones.

Una vez que todos los paquetes se hayan descargado e instalado, siga los últimos pasos hasta que salga el instalador. Inicie la “Terminal Cygwin” para entrar en el entorno de desarrollo similar a Linux. En la terminal no se utilizan comandos de Windows como “dir”, sino comandos de shell como “ls”.

Para demostrar cómo compilar un programa de Linux en Windows, usaremos el   paquete HTML-XML  de W3. Para ver lo que puede hacer, consulte Cómo manipular archivos HTML y XML desde la línea de comandos .

Descargue los archivos fuente usando “wget”:

Ahora descomprima el archivo de almacenamiento:

Los archivos fuente están ahora en el directorio “html-xml-utils-6.7”. Ingrese a ese directorio:

Antes de que se puedan construir los archivos, es necesario ejecutar el script de shell “configure” para generar el Makefile (las instrucciones de compilación) que son adecuados para este entorno de compilación. Este es un paso común en Linux (y Cygwin) al crear paquetes desde la fuente.

Una vez que haya finalizado la “configuración”, puede iniciar la compilación usando “make”:

La construcción fallará a la mitad. Tenía dos mentes sobre qué hacer a continuación. O podría cambiar a otro proyecto y construirlo desde su fuente o seguir luchando con las utilidades HTML-XML. Opté por lo último, ya que muestra que no todo será un paseo al intentar compilar programas de Linux en Cygwin. La solución a este problema en particular es simple. El mensaje de error muestra que el vinculador no puede encontrar la biblioteca “iconv”. Un vistazo rápido al comando de enlace muestra que la biblioteca no está especificada. La solución rápida y sucia es ejecutar el comando manualmente y decirle al enlazador que use libconv. La forma “correcta” de solucionar esto sería comenzar a profundizar en el Makefile, etc. para averiguar por qué no funciona.

Ejecute el siguiente comando, teniendo en cuenta la inclusión de “-liconv” al final:

Una vez creado el archivo “hxindex.exe”, puede continuar con el resto de la compilación escribiendo “make” nuevamente. La forma en que funciona “make” es verificando lo que se ha construido y lo que no, y luego continúa el proceso de construcción en el punto apropiado. Dado que hemos creado manualmente “hxindex.exe”, “make” simplemente continúa con el siguiente binario de su lista.

Cuando se complete “make”, tendrá todos los archivos .exe en el directorio html-xml-utils-6.7.

Si se queda atascado con Cygwin, debe consultar las  preguntas frecuentes y la  documentación . De lo contrario, el proyecto tiene un conjunto de listas de correo . Si tiene algún problema con los pasos descritos anteriormente, utilice la sección de comentarios a continuación.

¡Si te ha gustado vota con 5 Estrellas!
(Votos: 0 Promedio: 0)

Escribe Aquí Tu Comentario