El objetivo de WLCM es permitir la compilación de un programa multiplataforma de C/C++
compuesto por múltiples archivos y
carpetas en ambos sistemas operativos de forma fácil y rápida.
De más está decir que el código fuente debe ser compatible con ambos sistemas.
Al compartir el proyecto, cualquiera que cumpla con los requisitos podrá compilarlo rápidamente en su propio sistema operativo.
- make y un compilador de C/C++. Ambos vienen incluidos en la mayoría de distribuciones de Linux.
-
El compilador de C/C++ para Windows MinGW64 (recomendado) o MinGW.
Hay muchas guías sobre como instalar MinGW, como esta.
La instalación de MinGW64 es muy similar. Para no complicarte con las opciones, elige:
- Versión más reciente
- Arquitectura
i686
si tu sistema es de 32 bits yx86_64
si es de 64 bits - Threads
posix
para mayor portabilidad. - Exception
seh
- Última build revision disponible.
Para comprobar si todo funciona bien, puedes ejecutar
cmd.exe
y el comandogcc --version
debería funcionar sin problemas. -
make. Está incluido en los compiladores nombrados. Aparece como
mingw32-make.exe
No olvides incluir la ubicación del compilador en la variable de entorno Path
- Descarga y copia Makefile, makeLinux.sh y makeWindows.cmd a la raíz del proyecto.
- Modifica las opciones de Makefile de acuerdo a tus preferencias. Las carpetas Ejemplo1 y Ejemplo2 tienen estructuras usuales de proyectos en C/C++.
- Una vez configurado, ejecuta makeLinux.sh o makeWindows.cmd según el sistema operativo en uso.
Una vez realizados los pasos para crear un proyecto, este puede ser compilado tanto en Linux como en Windows simplemente cumpliendo con los requisitos y ejecutando el archivo correspondiente (makeLinux.sh o makeWindows.cmd).
Por defecto, cada vez que se ejecuten estos archivos, se eliminará la compilación anterior sin importar en qué SO fue realizada y se crearán nuevos archivos compatibles con el SO actual.
El archivo Makefile incluye algunas funciones que no se usan en makeLinux.sh ni makeWindows.cmd. Puedes editar estos archivos para hacer uso de ellas o emplearlas directamente mediante la terminal.
init
Crea las carpetas faltantes de las indicadas en las opciones de Makefile.%-depend
Elimina las dependencias del archivo%
. Útil cuando se cambia su ubicación.clean
Elimina todos los archivos resultantes de una compilación.
Ejemplo: mingw32-make init
No se puede compilar para Linux desde Windows ni para Windows desde Linux.
Es recomendable que ningún archivo ni carpeta contenga espacios o caracteres especiales (como tildes) para evitar
problemas en general. Por ejemplo, en vez de D:\Programación\Programa Test\
usa D:\Programacion\Programa_Test\
.
Makefile es básicamente una traducción al español de LaurentTreguier/Makefile.