Cómo configurar gtk en Visual Studio 2010

He intentado configurar gtk + en Visual Studio pero no funciona correctamente. ¿Alguien puede sugerirme una solución adecuada para instalar gtk en Visual Studio 2010?

Tengo GTK + trabajando con VS2010, así que si quieres que funcione también, prepárate para divertirte, porque esto tomará unos minutos.

En primer lugar, descargue el último paquete de Windows All-In-One . Enlace de descarga directa opcional para el paquete GTK 2.24 que utilicé aquí . El enlace directo es a la versión de 32 bits. No he probado la versión de 64 bits porque todavía aparece como experimental.

Una vez que haya descargado el paquete, descomprímalo en algo como C:\gtk o en mi caso D:\gtk

A continuación, crearemos una variable de entorno del sistema para la carpeta GTK. Abra un símbolo del sistema y escriba: setx GTKDIR {Path to your GTK folder} /m que en mi caso sería setx GTKDIR D:\gtk /m

También vamos a agregar los archivos .dll necesarios para que las aplicaciones GTK + comstackdas se ejecuten en Windows en nuestro sistema PATH. Para facilitar las cosas, le sugiero que edite la RUTA del sistema con PathEditor . Ahora agregue la ruta a la carpeta binarios GDK que en mi caso es D: \ gtk \ bin al sistema PATH. Confirme que la carpeta GTK bin se haya agregado a la RUTA escribiendo Ruta en el símbolo del sistema.

Ahora pasamos a Visual Studio 2010 y creamos un nuevo proyecto.

 File ->New ->Project Visual C++ ->Win32 ->Win32 Console Application 

Luego aparece el asistente de aplicación.

Clic para seleccionar:

 Windows Application Empty Project 

haga clic en Finalizar para continuar.

Antes de agregar cualquier archivo fuente, haga clic con el botón derecho en el nombre del proyecto en el Explorador de soluciones y haga clic en Propiedades . Ahora ve a Propiedades de configuración y luego a Directorios de VC ++ . Ahora necesitamos agregar los archivos de inclusión y biblioteca de GTK a los directorios de inclusión y biblioteca .

Debería tener lo siguiente en sus directorios de inclusión

 $(GTKDIR)\lib\gtk-2.0\include $(GTKDIR)\lib\glib-2.0\include $(GTKDIR)\include 

y directorios de la biblioteca :

 $(GTKDIR)\lib 

Mientras todavía estamos en la vista de las Propiedades del proyecto, haga clic en Enlazador y luego en Sistema . Busque SubSystem a la derecha y haga clic en el cuadro desplegable. Seleccione Windows / SUBSISTEMA: WINDOWS

A continuación, tenemos que generar los indicadores para el comstackdor y el vinculador. Afortunadamente, GTK + viene con una pequeña herramienta llamada pkg-config que usaremos para generar automáticamente estas banderas para nosotros. La herramienta pkg-config se puede encontrar en la carpeta bin de GTK. En mi caso esto es D: \ gtk \ bin o % GTKDIR% \ bin usando nuestra variable de sistema que definimos anteriormente. Simplemente navegue a la carpeta bin (los archivos de texto creados se mostrarán allí) usando el símbolo del sistema y ejecute lo siguiente:

 pkg-config --cflags gtk+-2.0 --msvc-syntax > compilerflags.txt 

Esto creará los indicadores del comstackdor que necesitamos y los almacenará en un archivo de texto. Mi resultado para las banderas del comstackdor (he eliminado la bandera -mms-bitfields , esta es una bandera de gcc solamente que no necesitamos):

 -ID:/gtk/include/gtk-2.0 -ID:/gtk/lib/gtk-2.0/include -ID:/gtk/include/atk-1.0 -ID:/gtk/include/cairo -ID:/gtk/include/gdk-pixbuf-2.0 -ID:/gtk/include/pango-1.0 -ID:/gtk/include/glib-2.0 -ID:/gtk/lib/glib-2.0/include -ID:/gtk/include -ID:/gtk/include/freetype2 -ID:/gtk/include/libpng14 

Haremos lo mismo con las banderas del enlazador:

 pkg-config --libs gtk+-2.0 --msvc-syntax > linkerflags.txt 

Mi resultado para las banderas del enlazador:

 /libpath:D:/gtk/lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib pangowin32-1.0.lib gdi32.lib pangocairo-1.0.lib gdk_pixbuf-2.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib gthread-2.0.lib glib-2.0.lib intl.lib 

Con todas las banderas necesarias generadas, tenemos que agregarlas a nuestro proyecto. Una vez más, haga clic derecho en el nombre del proyecto y haga clic en Propiedades . Ahora ve a C/C++ y C/C++ clic en Command Line . A la derecha, debería ver un cuadro vacío llamado Opciones adicionales . Copie y pegue el contenido compilerflags.txt en este cuadro.

Después de terminar lo anterior, haga clic en Enlazador y luego en Línea de comando . Una vez más, simplemente copie y pegue el contenido del archivo linkerflags.txt en el cuadro de Opciones adicionales . Mientras estamos aquí, agregue una última bandera del enlazador / ENTRADA: mainCRTStartup Este indicador le dice a Visual Studio que queremos usar el main main () en lugar del _tmain () de Microsoft como nuestro punto principal de entrada al progtwig.

Finalmente, en la carpeta Archivos de origen, cree y agregue un nuevo archivo .cpp con lo siguiente:

 #include  int main(int argc, char* argv[]) { gtk_init(&argc, &argv); GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_usize(window, 300, 200); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010"); gtk_widget_show(window); gtk_main(); return 0; } 

Todo debería estar listo para comstackr, vincular y ejecutar. Si todo fue bien, debe recibir lo siguiente: enter image description here

Bueno, eso fue divertido, ¿verdad? 🙂

Eche un vistazo a este GTK + con el tutorial de Visual Studio 2008 .

Si está comstackndo GTK + stack en Windows con la ayuda de una guía como esta , entonces los lujos de usar un binario precomstackdo no estarán a su disposición.

En este caso, sugeriría el siguiente enfoque.

  1. Descargue los binarios precomstackdos. Esto tiene dos ventajas.

    • Esto se envía con la utilidad pkg-config.exe que puede usar para la fuente comstackda.
    • Esto también contiene la carpeta pkgconfig con una gran cantidad de archivos .pc que se pueden adaptar para la fuente comstackda.
  2. Compile los paquetes en el modo de depuración / liberación, esta es la principal ventaja de comstackrlo usted mismo, y organice sistemáticamente los encabezados, libs y dlls / exe en las carpetas include, lib y bin, respectivamente.

  3. Copie la carpeta pkgconfig de precompiled_gtk_source \ bin a compiler_gtk_source \ bin y configure la ruta de la variable PKG_CONFIG_PATH para agregarle el compiler_gtk_source \ bin \ pkgconfig.

  4. Ahora, considerando el hecho de que los nombres de las bibliotecas producidas al comstackr gtk usted mismo y los nombres de biblioteca correspondientes en el paquete precomstackdo pueden ser diferentes, es posible que tenga que hacer los cambios necesarios en los archivos compiler_gtk_source \ bin \ pkgconfig * .pc. Me gustaría un enfoque de arriba a abajo aquí (veremos las ventajas en breve). De arriba a abajo, simplemente quiero decir que el producto final será el primero en ser editado.

    Por ejemplo, en este caso, el gtk + es el producto final y primero voy a configurar el .pc de este paquete. El procedimiento es el siguiente:

    • Primero mira el nombre de la dll creada. En mi caso, es gtk-3.0. Si el archivo .pc que se envió con los archivos binarios precomstackdos tiene otro nombre, cambie el nombre apropiadamente, en mi caso es gtk-3.0.pc. (Este debería ser el caso con todos los demás archivos .pc).
    • Abra el gtk-3.0.pc en un editor de texto y verá cosas como a continuación.

archivo gtk-3.0.pc:

  prefix=c:/gtk_comstacktion/vs12/win32 exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include targets=win32 Name: GTK+ Description: GTK+ Graphical UI Library Version: 3.18.2 Requires: gdk-3.0 atk-1.0 cairo cairo-gobject gdk_pixbuf-2.0 gio-2.0 Requires.private: atk Libs: -L${libdir} -lgtk-3 Cflags: -I${includedir}/gtk-3.0 -mms-bitfields 

El de arriba es mi archivo personalizado. Si no sabe lo que hace cada línea, puede echar un vistazo a la ayuda de pkg-config . La opción Requerir, sin embargo, necesita una mención especial. Es el lugar donde pone los dlls de dependencias; nuevamente, asegúrese de que el nombre de los dlls coincida exactamente con el que tiene en su carpeta bin.

  1. Necesitamos cambiar recursivamente los archivos .pc para los dlls que se incluyen después de la statement Require y si falta alguno .pcs ​​o si hay una discrepancia de nombre, puede hacer los cambios apropiados. Por ahora, ya debería haber entendido la ventaja del enfoque de arriba hacia abajo. Nos ayuda a clasificar sistemáticamente los archivos .pc de dependencia hasta que los clasifiquemos todos. Ahora, ejecute el siguiente comando para ver si las cosas están funcionando.

  2. Finalmente ejecute el comando pkg-config como a continuación:

    pkg-config --cflags gtk-3.0 --msvc-syntax > compilerflags.txt pkg-config --libs gtk+-2.0 --msvc-syntax > linkerflags.txt

Acabo de redirigir los resultados a un archivo de texto llamado compilerflags.txt & linkerflags.txt para que pueda usarlos en cualquier momento que desee mediante cortar, copiar y pegar . Por supuesto, debe conservar solo los indicadores específicos del comstackdor.

Espero que esto ayude a alguien, en algún momento.