Finalmente lo he logrado :) :) :) ¡Luego de dos semanas pariendo perdido por caminos verdes, al final lo logré! ¡Compilé bajo Windows un proyecto generado por Glade en C++!
Los pasos son los siguientes:
- Bajar y descargar Glade/GTK+ para Windows desde http://gladewin32.sourceforge.net/. Este paquete es lo único que se necesita si quieres diseñar interfaces de usuario y generar código en C. Ese código es perfectamente compilable desde Microsoft Visual C++ 6 (simplemente genera el código desde Glade, luego abres el Visual Studio, seleccionas "Abrir proyecto", vas a la carpeta msvc y abres el archivo .dsw respectivo).
- Lamentablemente, este paquete no servirá para generar código en C++ pues reventará con este error:
# Error running glade-- to generate the C++ source code. Check that you have glade-- installed and that it is in your PATH. Then try running 'glade-- ' in a terminal.
Usando Cygwin y gtkmm para WindowsLa solución consistirá en utilizar una distribución llamada
gtkmm for Win32, que sí funciona muy bien bajo Windows. Sin embargo, la misma no utiliza Visual C++ 6 sino el ambiente de compilación
Cygwin, el cual trata de imitar de una forma muy cercana al conjunto de herramientas de programación para C y C++ que existen bajo Linux: GCC, autoconf, automake, libtool, etc.
También es posible utilizar MSVC .NET (versión 7.1), pero los autores de gtkmm para Windows advierten de un bug bastante grave con el que se han topado algunas aplicaciones siendo programadas con esta combinación. Para solucionarlo hay que actualizarse al beta 2 de
Visual Studio. Net 2005. El mismo ya está disponible; sin embargo, Visual Studio .Net es una plataforma demasiado pesada para mí, además de que es propietaria; prefiero quedarme con Cygwin por ahora.
Continuamos entonces:
- Descargar e instalar gtkmm for Win32 desde http://www.pcpm.ucl.ac.be/~gustin/win32_ports/. Puede instalarse en el mismo directorio en el que se instaló Glade/GTK para Windows (asumiremos C:\gtk). Este paquete instalará glade--.exe, lo que ya permitirá generar código en C++.
- Descargar e instalar Cygwin desde http://www.cygwin.com/. Descargarás inicialmente un ejecutable muy pequeño que te permitirá seleccionar qué paquetes de Cygwin quieres instalar. Cuando llegues a la ventana "Select packages", haz click en el botón "View" para colocarlo en "Full" y selecciona, además de los paqueters que vienen instalados por defecto, los siguientes:
- autoconf
- automake
- binutils
- coreutils
- gcc-core
- gcc-g++
- gcc-mingw-core
- gcc-mingw-g++
- libtool1.5
- make
- Si todo sale bien, entra en Glade, crea un proyecto, dibuja una ventana con algunos botones y graba el proyecto. No olvides entrar en Options y colocar el lenguaje por defecto en C++ antes de grabar.
- Haz click en "Build" para generar el código. Como ya tienes el glade--.exe, no deberías tener mensajes de error importantes. Verás que una ventana de cónsola se abre, se cierra y luego, en el status bar de Glade, aparecerá un mensaje indicando que el código ya fue construido.
Nota: si guardaste el proyecto en una carpeta cuya ruta tenga espacios (por ejemplo, "c:\Documents and settings\Pedro Perez\...") Glade dará un error al compilar: "Error running glade-- to generate the C++ source code." Guárdalo en una carpeta con un nombre sin espacios, como "c:\Proyectos\PedroPerez".
- Con eso, generaste en la carpeta src dentro de tu proyecto los archivos .cc y .hh con el esqueleto de tu proyecto, además de otros necesarios para poder compilar. Ahora, viene el paso de la compilación.
- Entra en una ventana de Cygwin Bash Shell. Desde allí, haz cd hasta la carpeta de tu proyecto, recordando que allí se usan los slashes como en Unix. Por ejemplo:
cd c:/tesis/proyecto2/
- Ahora, ejecuta el comando:
gtkautogen --prefix=/target
Ese comando correrá por tí todos los comandos (glib-gettextize, aclocal, autoheader, automake, autoconf, configure, etc.) necesarios para generar los archivos que permitirán compilar tu proyecto.
- Luego, ejecutas el tradicional
make
Y luego:
make install
- Si todo sale bien, en la carpeta src dentro de tu proyecto de ejemplo debe estar el ejecutable. Sólo hazle doble click, y podrás verlo correr en todo su esplendor :)
Referencias: