Apéndice A: Binarios wxWidgets
Esta es la opción que recomiendo, y la que se usa para los programas de ejemplo de este curso.
Las versiones de los programas y librerías son las últimas disponibles en abril de 2024. Pueden haber cambiado si lees esto algún tiempo después.
El IDE de Code::Blocks
Usando Code::Blocks existen varias situaciones posibles. Comentaré algunas de ellas y sus ventajas e inconvenientes:
La más sencilla es instalar Code::Blocks 20.03 con el compilador incluido:
Ventajas
- Es fácil de instalar, basta descargar el instalador y ejecutarlo.
Inconvenientes
- Esta opción contiene la versión 8.1.0 de MinGW-64, que es bastante antigua, actualmente la última versión es la 13.2.0.
- Contiene plantillas para aplicaciones wxWidgets hasta la versión 3.1, actualmente la última versión es la 3.2.6.
La segunda opción es instalar Code::Blocks 20.03 sin el compilador incluido, y usar el compilador que más nos guste. Por ejemplo, la versión actualizada de MinGW usando MSYS2:
Ventajas
- Sigue siendo una opción sencilla de instalar.
- Podemos usar una versión del compilador actualizada.
Inconvenientes
- Seguimos sin disponer de plantillas para aplicaciones wxWidgets 3.2.
La tercera opción es instalar una versión nightly de Code::Blocks que no incluye el compilador, y usar el compilador que más nos guste.:
Ventajas
- Podemos usar una versión del compilador actualizada.
- Dispondremos de plantillas para aplicaciones wxWidgets 3.2.
- El IDE está actualizado y funciona mejor.
Inconvenientes
- Ya no es tan sencilla la instalación, pero tampoco hay una complicación excesiva.
Personalmente prefiero la tercera opción y es la que se ha usado en este curso para crear los programas de ejemplo.
Descargar e instalar los binarios
Desde la página de descargas de wxWidgets podemos acceder a la descarga de binarios para varios compiladores diferentes: varias versiones de Visual Studio, para 32 o 64 bits, varias versiones de MinGW, de 32 y 64 bits, y TDM-GCC.
Elegiremos la versión que más se aproxime a la que utilizamos en nuestro entorno. Lo ideal es usar la versión que coincida con la de nuestro compilador, pero no siempre será posible.
Si como yo, has optado por usar una versión nightly de Code::Blocks y una versión actualizada de MinGW desde MSYS2, elegiremos los binarios para 32 o 64 bits, "MSYS2 MinGW-w64 12.2", según nuestras preferencias a la hora de generar ejecutables.
Si hemos usado el compilador desde MSYS2, la versión actual es la 13.2.0, y la última versión de las librerías es para la versión 12.2, pero esto no causará ningún inconveniente.
Descargaremos los ficheros de cabecera (Header Files), los de desarrollo (Development Files) y los descomprimiremos en una carpeta, por ejemplo, "C:\wxwidgets". Los ficheros están comprimidos en formato 7z, de modo que probablemente necesites descargar algún programa que pueda leer este tipo de ficheros, por ejemplo 7zip.
También disponemos de la "Release DLLs", que no necesitamos instalar, esos ficheros ya están incluidos en el paquete de desarrollo, y solo los necesitaremos para redistribuir nuestros ejecutables que usen wxWidgets.
Estas librerías incluyen solo las versiones no monolíticas para enlace dinámico. Es decir, no podremos crear aplicaciones stand-alone, o sea, con enlace estático.
Nota: Las plantillas de Code::Blocks asumen que los ficheros de librería de wxWidgets están en una carpeta "/lib/gcc_dll", pero los que descargamos usan la ruta "/lib/gcc1220_x64_dll". Tenemos dos alternativas, o bien renombramos la carpeta o bien editamos las opciones para cada nuevo proyecto. Creo que es más sencilla la primera opción, a no ser que estemos obligados a trabajar con diferentes versiones de las DLL. En los ejemplos para descargar asumiremos que la carpeta se llama "/lib/gcc_dll".
Configurar Code::Blocks
Una vez instaladas las librerías tendremos que configurar algunas cosas en Code::Blocks para poder utilizarlas en nuestros programas.
Si intentamos crear una aplicación a partir de la plantilla, y no hemos definido la variable global wx, Code::Blocks nos pedirá la ubicación de wxWidgets, "wxWidgets' location". Por defecto aparecerá una macro como esta "$(#wx). Se refiere a una variable global de Code::Blocks llamada wx, que tendremos que definir a continuación si no existe, o modificar si ya la habíamos definido previamente.

Indicamos en "Base" la ruta donde hemos instalado las librerías, por ejemplo "C:/wxwidgets".
De todos modos, yo recomiendo definir la variable global previamente, a través de la opción de menú "Settings->Global variables".
Con las opciones recomendadas para Code::Blocks y el compilador, y renombrando la carpeta con las librerías descargadas a "/lib/gcc_dll", esta es toda la configuración necesaria. Ya podríamos empezar a crear aplicaciones wxWidgets.