Página principal
Librería wxwidgets
Crear programas multiplataforma

Al crear un programa, lo primero que queremos es que sea utilizado por la mayor cantidad de gente. La plataforma que predomina es Windows, Linux y Mac solo es una pequeña parte de usuarios. Para el caso de querer que nuestro programa corra en las diferentes plataformas, debemos utilizar librerías multiplataforma, que con solo recompilar los archivos fuente, puedan ser utilizados los programas.
Para este caso vamos a utilizar la librería wxwidgets https://www.wxwidgets.org/.
En un anterior artículo wxtutor.html , había explicado como instalar y configurar wxWidgets en CodeBlocks bajo windows.
En este artículo he creado un monitor de temperatura externa, anteriormente lo había realizado en Gambas (VB para linux), pero bajo Windows no funciona. ard433.html
Para este programa he realizado varios makefiles para crear ejecutables para las diferentes versiones de librerías y modos, estaticas o DLL.
Al ser multiplataforma se recompila todo en Linux o Windows sin retocar ni una sola línea de código, salvo modificar el archivo define.h  y  poner:
    #define YesWindows 0
o
    #define YesWindows 1


Programa bajos Linux.


Programa bajos Windows.

Podemos observar los diferente ejecutables bajo Windows.
Los programas programa311.exe y programa1812.exe son pequeños, pero utilizan las DLL , que se tienen que colocar directorio system32 del directorio windows, o junto con cada uno de los ejecutables.
Los programas programa311s.exe y programa1812s.exe no necesitan las DLL, las llevan incorporadas en el propio programa. Son de mayor tamaño, pero quedan mejor en la distribución de un solo fichero para la utilización del programa. Se puede observar que dependiendo de la versión de la librería puede ser su tamaño más del doble.
Para reducir los programas ejecutables, se puede usar el programa upx.exe. Este programa comprime los ejecutables a la tercera parte. Se puede observar en los ficheros programa2812sz.exe y programa311sz.exe.

Para diferenciar entre programas, dll, y fuentes, los he distibuido en diferentes ficheros.

dll.zip

binarios.zip
fuentes.zip


Hasta pronto.
JUAN GALAZ