La compilación de las librerías GTK + - Cómo compilar GTK + se
Este capítulo trata sobre la construcción e instalación de GTK + en Unix y Unix-como sistemas como Linux. Compilar GTK + en Microsoft Windows es diferente en los detalles y un poco más difícil de conseguir que va desde las herramientas necesarias no se incluyen con el sistema operativo.
Antes de entrar en los detalles de cómo compilar GTK +, hay que destacar que, en muchos casos, los paquetes binarios precompilados de GTK + para su sistema operativo estará disponible, ya sea desde el proveedor del sistema operativo o de fuentes independientes. Si este conjunto de paquetes está disponible, la instalación le dará la programación con GTK + mucho más rápido que la construcción de uno mismo. De hecho, es muy posible que ya tienen GTK + instalado en su sistema ya.
En UNIX-como sistemas de GTK + utiliza el estándar de sistema de compilación GNU, usando autoconf para la configuración del paquete y la resolución de problemas de portabilidad, automake para makefiles edificio que cumpla con los términos de estándares de codificación y libtool para la construcción de bibliotecas compartidas en múltiples plataformas.
Si usted está construyendo GTK + de los paquetes de fuentes distribuidas, entonces usted no necesitará estas herramientas instaladas, las piezas necesarias de las herramientas ya están incluidos en los paquetes fuente. Pero es útil saber un poco acerca de cómo los paquetes que utilizan estas herramientas de trabajo. Un paquete fuente se distribuye como un tar.bz2 o tar.xz archivo que descomprimir en un directorio completo de los archivos de origen de la siguiente manera:
tar xvfj gtk +-3.2.0.tar.bz2 tar xvfj gtk +-3.2.0.tar.xz
En el directorio principal que se ha creado, habrá un shell script llamado configure que luego correr para coger la plantilla makefiles llamadosMakefile.in en el paquete y crear makefiles personalizada para su sistema operativo. La configuración script puede pasar varios argumentos de la línea de comandos para determinar cómo el paquete está construido e instalado. El argumento más común es la utilidad - prefix argumento que determina dónde se instala el paquete. Para instalar un paquete en / opt / gtk debe ejecutar configure como:
. / Configure - prefix = / opt / gtk
Una lista completa de las opciones se puede encontrar ejecutando configure con el - help argumento. En general, los valores por defecto son correctas y deben confiar en él. Después de ejecutar configure , a continuación, ejecuta el make de comandos para crear el paquete e instalarlo.
make
make install
Si usted no tiene permiso para escribir en el directorio que va a instalar, usted puede tener que cambiar de raíz temporalmente antes de ejecutar make install . Además, si va a instalar en un directorio del sistema, en algunos sistemas (como Linux), usted tendrá que ejecutar ldconfig después make install para que las bibliotecas recién instalados serán encontrados.
Varias variables de entorno son útiles para pasar a antes de ejecutar configure. CPPFLAGS contiene opciones para pasar al compilador C, y se utiliza para indicar al compilador dónde buscar los archivos de inclusión. El LDFLAGS variable se utiliza de una manera similar para el enlazador. Por último, elPKG_CONFIG_PATH variable de entorno contiene una ruta de búsqueda que pkg-config (ver más adelante) utiliza cuando se busca para un archivo que describe cómo compilar programas usando diferentes bibliotecas. Si estaba instalando GTK + y es dependencias en / opt / gtk , es posible que desee establecer estas variables como:
CPPFLAGS = "-I/opt/gtk/include" LDFLAGS = "-L/opt/gtk/lib" PKG_CONFIG_PATH = "/ opt / gtk / lib / pkgconfig" exportación CPPFLAGS LDFLAGS PKG_CONFIG_PATH
También puede ser necesario para establecer el LD_LIBRARY_PATH variable de entorno para los sistemas enlazador dinámico puede encontrar las librerías recién instaladas y la RUTA programa de medio ambiente por lo que la utilidad binarios instalados por las distintas bibliotecas se encuentran.
LD_LIBRARY_PATH = "/ opt / gtk / lib" PATH = "/ opt / gtk / bin: $ PATH" export PATH LD_LIBRARY_PATH
Antes de poder compilar el kit de herramientas GTK +, es necesario contar con otras herramientas y bibliotecas instaladas en el sistema. Las dos herramientas necesarias durante el proceso de construcción (a diferencia de las herramientas utilizadas en la hora de crear GTK + antes mencionados, tales como autoconf ) son pkg-config y hacer GNU.
pkg-config es una herramienta para el seguimiento de las banderas de compilación necesarias para las bibliotecas que son utilizados por las bibliotecas GTK +. (Para cada biblioteca, un pequeño . pc archivo de texto se instala en una ubicación estándar que contiene las banderas de compilación necesarios para que la biblioteca junto con la información de número de versión.)
El GTK + makefiles en su mayoría funcionan con versiones diferentes de make , sin embargo, tiende a existir algunas incompatibilidades, por lo que el equipo de GTK + recomienda instalar GNU make , si no lo tiene en su sistema y su uso. (Puede ser llamado gmake en vez de make .)
Algunas de las bibliotecas GTK + que depende estén mantenidas por el equipo de GTK +: GLib, GdkPixbuf, Pango, ATK e Introspección GObject. Otras bibliotecas se mantienen por separado.
La biblioteca GLib proporciona núcleo no gráfico funcionalidad como de alto nivel de los tipos de datos, manipulación de Unicode y un objeto y un sistema de tipo de programas en C. Está disponible en el sitio FTP GTK + o aquí .
La biblioteca GdkPixbuf proporciona facilidades para la carga de imágenes en una variedad de formatos de archivo. Está disponible aquí .
Pango es una biblioteca para la manipulación de texto internacionalizado. Está disponible aquí .
ATK es el kit de herramientas de Acceso. Se proporciona un conjunto de interfaces genéricas que permiten las tecnologías de accesibilidad como lectores de pantalla para interactuar con una interfaz gráfica de usuario. Está disponible aquí .
Introspección GObject es un marco para la toma de datos de introspección disponibles para enlaces de lenguaje. Está disponible aquí .
Dependencias externas
La biblioteca GNU libiconv se necesita para construir GLib si su sistema no tiene la iconv () función para realizar la conversión entre codificaciones de caracteres. Mayoría de los sistemas modernos deben tener iconv () .
La biblioteca libintl del paquete GNU gettext es necesario si su sistema no tiene el gettext () funciones necesarias para procesar bases de datos de mensajes de traducción.
Las bibliotecas del sistema de ventanas X son necesarios para construir Pango y GTK +. Usted ya debe tenerlos instalados en su sistema, pero es posible que usted tendrá que instalar el entorno de desarrollo de estas bibliotecas que el proveedor del sistema operativo proporciona.
El fontconfig biblioteca Pango proporciona una forma estándar de localización de fuentes y emparejarlos contra nombres de fuente.
El Cairo es una biblioteca de gráficos compatible con gráficos vectoriales y de composición de imágenes. Tanto Pango y GTK + El Cairo utilizar para todos sus dibujos.
El shared-mime-info paquete no es una dependencia estricta de GTK +, pero contiene las definiciones de los tipos MIME que utiliza GIO e, indirectamente, por GTK +. gdk-pixbuf usará para GIO mimo detección del tipo de si es posible. Para que esto funcione, shared-mime-info necesita ser instalado y XDG_DATA_DIRS establecer en consecuencia a la hora de configurar. De lo contrario, gdk-pixbuf cae de nuevo a su base de mimo tipo de detección.
En primer lugar asegúrese de que tiene las dependencias externas necesarias instalado: pkg-config , GNU make, JPEG el, PNG, TIFF y bibliotecas, FreeType, y, si es necesario, y libiconv libintl. Para obtener información detallada acerca de la construcción de estos paquetes, consulte la documentación incluida con los paquetes individuales. En un sistema Linux, es muy probable que usted tenga todos estos instalado ya salvo pkg-config.
A continuación, construir e instalar las librerías GTK + en el orden: GLib, Pango, ATK, entonces GTK +. Para cada biblioteca, siga los pasos deconfiguración , make , make install antes mencionados. Si tienes suerte, todo esto sin problemas, y usted estará listo para comenzar a compilar sus propias aplicaciones GTK + . Puede probar la instalación GTK + ejecutando el gtk3-demo programa que instala GTK +.
Si uno de los configure scripts de falla o correr make falla, mirar de cerca los mensajes de error impresos, los cuales a menudo proporcionan información útil sobre lo que salió mal. Cuando configure falla, información adicional, como los errores que una compilación de prueba se encontró con, se encuentra en el archivo config.log . Mirando el último par de cientos de líneas de este archivo con frecuencia dejan claro lo que salió mal. Si todo lo demás falla, puede pedir ayuda en la lista de correo gtk-list. Ver listas de correo e informes de errores (3) para obtener más información.
Además de las opciones normales, la configuración guión para la biblioteca GTK + es compatible con una serie de argumentos adicionales.(Argumentos de línea de comandos para las bibliotecas GTK + otros se describen en la documentación distribuida con las bibliotecas de esos.)
configurar
[[- disable-módulos] | | [- Enable-Bsymbolic]] [[- disable-xkb] | [- enable-xkb]] [[- disable-xinerama] | [- enable-xinerama]] [[- disable-gtk -doc] | [- enable-gtk-doc]] [[- disable-cups] | [- enable-cups]] [[- disable-papi] | [- enable-papi]] [[ - enable-xinput] | [- disable-xinput]] [[- enable-packagekit] | [- disable-packagekit]] [[- enable-x11-backend] | [- disable-x11- backend] | [- enable-win32-backend] | [- disable-win32-backend] | [- enable-cuarzo-backend] | [- disable-cuarzo-backend]] [[- enable-introspección = [no / auto / yes]]] [[- enable-gtk2-dependencia] | [- disable-gtk2-dependencia]]
- Disable-modules y - enable-modules . Normalmente GTK + a tratar de construir los módulos del método de entrada como pequeñas bibliotecas compartidas que se cargan bajo demanda. El - disable-módulos argumento indica que todos ellos deben ser construidos estáticamente a la biblioteca GTK + en su lugar. Esto es útil para las personas que necesitan para producir binarios enlazados estáticamente. Si ninguno - disable-modules ni - enable-modules se especifica, la configuración script intentará detectar automáticamente si los módulos compartidos trabajar en el sistema.
- With-included-immodules . Esta opción le permite especificar qué método de entrada de los módulos que desea incluir directamente en la biblioteca GTK + compartido, en oposición a la construcción como módulos cargables.
- Enable-debug . Activa diversas cantidades de compatibilidad de depuración. Si se establece en "no" deshabilita g_assert (), g_return_if_fail (), g_return_val_if_fail () y todos los cheques del reparto entre los distintos tipos de objetos. Si se establece en "mínimos" desactiva sólo emitir cheques.Si se establece en "sí" permite la depuración en tiempo de ejecución . El valor predeterminado es "mínimo". Tenga en cuenta que 'no' es rápido, pero peligroso, ya que tiende a desestabilizar aún en su mayoría software libre de errores al cambiar el efecto de las advertencias de muchos errores simples en accidentes fatales. Por lo tanto - enable-debug = no debería no ser usado para las versiones estables de GTK +.
- Disable-Bsymbolic y - enable-Bsymbolic . La opción - disable-Bsymbolic desactiva el uso de la-Bsymbolic-funciones bandera enlazador. Esto sólo es necesario si desea reemplazar las funciones de GTK + usando LD_PRELOAD .
- Enable-explicit-deps y - disable-explicit-deps . Si la opción - enable-explícito-deps se especifica a continuación, GTK + escribirá el conjunto completo de las bibliotecas GTK + que depende en su PC. archivos que se utilizan cuando los programas en función en GTK + están vinculados. De lo contrario, GTK + sólo incluirá las propias bibliotecas GTK +, y dependerá de las instalaciones del sistema de dependencia de la biblioteca para traer las otras bibliotecas. Por defecto GTK + se desactiva dependencias explícitas a menos que detecte que son necesarios en el sistema. (Si especifica - enable-static para forzar la construcción de bibliotecas estáticas y, a continuación dependencias explícitas se escribirá desde las dependencias de la biblioteca no trabajo para bibliotecas estáticas.) Especificación - enable-explícito-deps o - enable-estáticapuede causar problemas de compatibilidad cuando las bibliotecas GTK + que dependa de cambiar sus versiones, y debe evitarse si es posible.
- Disable-xkb y - enable-xkb . Por defecto la configuración script intentará detectar automáticamente si la extensión XKB es apoyado por el GTK + bibliotecas X se vincula con. Estas opciones se pueden utilizar para controlar de forma explícita si GTK + apoyará la extensión XKB.
- Disable-xinerama y - enable-xinerama . Por defecto la configuración script intentará enlazar con las bibliotecas Xinerama si se encuentran.Estas opciones se pueden usar para controlar explícitamente si Xinerama se debe utilizar.
- Disable-xinput y - enable-xinput . Controla si GTK + está construido con el apoyo a la extensión XInput o XInput2. Estas extensiones proporcionan una interfaz extendida a dispositivos de entrada tales como tabletas gráficas. Cuando este apoyo es compilado, especialmente escritos GTK + programas pueden acceder a puestos de subpíxeles, múltiples dispositivos de entrada simultáneas y adicionales "hachas" proporcionados por el dispositivo, tales como la presión y la información de inclinación.
- Disable-gtk-doc y - enable-gtk-doc . El gtk-doc paquete se utiliza para generar la documentación de referencia incluidos con GTK +. Por defecto, el apoyo a gtk-doc se desactiva, ya que requiere varias dependencias adicionales para ser instalado. Si tiene gtk-doc instalado y está modificando GTK +, es posible que desee habilitar gtk-doc apoyo pasándole la opción - enable-gtk-doc . Si no está activado, pre-archivos HTML generados distribuidos con GTK + se instalará.
- Disable-cups y - enable-cups . Por defecto la configuración script intentará construir las copas imprimir backend si las bibliotecas copas se encuentran. Estas opciones se pueden utilizar para controlar de forma explícita si el backend de CUPS debe ser construido.
- Disable-papi y - enable-papi . Por defecto la configuración script intentará construir el backend de impresión papi papi si las bibliotecas se encuentran. Estas opciones se pueden usar para controlar de forma explícita si el backend impresión papi debe ser construido.
- Disable-packagekit y - enable-packagekit . Por defecto la configuración script intentará construir el apoyo PackageKit para el diálogo abierto con PackageKit si las bibliotecas se encuentran. Estas opciones se pueden usar para controlar de forma explícita si el apoyo PackageKit debe ser construido.
y - disable-quartz-backend . Permite backends específicos para GDK. Si ninguna de estas opciones se dan, el backend x11 será activado por defecto, a menos que la plataforma es Windows, en cuyo caso el valor por defecto es win32. Si cualquier backend está explícitamente activado o desactivado, ninguna otra plataforma se activará automáticamente. Otros backends soportados son el backend de cuarzo para OS X.
- Enable-introspección . Construir con o sin el apoyo de la introspección. El valor por defecto es 'auto'.
- Enable-gtk2-dependency o - disable-gtk2-dependency . Ya sea contar con una salida de gtk-update-icon Utilidad de caché en vez de construir nuestro propio. Las distribuciones que se envían tanto GTK + 2.x y GTK + 3 puede que quiera usar esta opción para evitar conflictos de archivos entre estos paquetes. El valor predeterminado es construir gtk-update-icon-cache.
Generado por GTK-Doc V1.18.1