Compilar el paquete glib - Cómo compilar GLib sí mismo
En UNIX, GLib 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 cumple con los Estándares de Codificación GNU, y libtool para la construcción de bibliotecas compartidas en múltiples plataformas. La secuencia normal para compilar e instalar la biblioteca GLib es la siguiente:
. / Configure
make
make install
Las opciones estándar proporcionados por autoconf de GNU se puede pasar a la configuración script. Por favor vea el autoconf documentación o ejecutar . / configure - ayuda para obtener información acerca de las opciones estándar.
La documentación de GTK + contiene más detalles sobre el proceso de construcción y las formas de influir en él.
Antes de poder compilar la biblioteca GLib, es necesario tener 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 GLib mencionado anteriormente, como autoconf ) sonpkg-config y GNU make.
pkg-config es una herramienta para el seguimiento de las banderas de compilación necesarias para las bibliotecas que utilizan la biblioteca GLib.(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.) La versión de pkg-config necesario para construir GLib se refleja en ladependencias directorio el sitio FTP GTK +.
El GTK + makefiles en su mayoría funcionan con versiones diferentes de hacer , 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 hacer .)
GLib depende de un número de otras bibliotecas.
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 () , sin embargo, muchos sistemas antiguos carecen de unaiconv () implementación. En estos sistemas, debe instalar la biblioteca libiconv. Esto se puede encontrar en:http://www.gnu.org/software/libiconv .
Si su sistema tiene un iconv () , pero la aplicación que desea utilizar libiconv lugar, se puede pasar la opción - with-libiconv opción de configurar.Esto fuerza Libiconv para ser utilizado.
Tenga en cuenta que si ha libiconv instalado en su defecto incluye la ruta de búsqueda (por ejemplo, en / usr / local / ), pero no lo permiten, obtendrá un error durante la compilación de GLib porque el iconv.h que instala libiconv oculta la sistema iconv.
Si está utilizando la aplicación nativa iconv en Solaris en lugar de libiconv, usted debe asegurarse de que dispone de los convertidores entre codificaciones locale y UTF-8 instalado. Como mínimo necesitará el paquete SUNWuiu8. Es probable que también debe instalar el SUNWciu8, SUNWhiu8, SUNWjiu8, y los paquetes SUNWkiu8.
El iconv nativo en Compaq Tru64 no contiene soporte para UTF-8, por lo que tendrá que utilizar GNU en lugar libiconv. (Cuando se utiliza GNU libiconv para GLib, usted tendrá que usar GNU libiconv para GNU gettext también.) Esto probablemente se aplica a los sistemas operativos relacionados también.
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.
Una implementación de hilo se necesita. El soporte de hilos en GLib puede basarse en las discusiones o hilos POSIX win32.
GRegex utiliza la biblioteca PCRE para la coincidencia de expresión regular. El valor predeterminado es utilizar la versión interna de PCRE que está conectado a usar GLib para la gestión de memoria y la manipulación Unicode. Si prefiere usar la biblioteca PCRE proporcionado por el sistema puede pasar la opción - with-pcre = Sistema opción, pero no es recomendable.
El soporte opcional de atributos extendidos en GIO requiere la familia getxattr () de funciones que pueden ser proporcionados por glibc o por la biblioteca libattr independiente. Para construir GLib sin soporte de atributos extendidos, utilice la opción - disable-xattr opción.
El soporte opcional SELinux en GIO requiere libselinux. Para construir GLib sin soporte de SELinux, utilice la opción - disable-selinuxopción.
El soporte opcional para DTrace requiere el sys / sdt.h cabecera, que es proporcionada por SystemTap en Linux. Para construir GLib sin DTrace, utilice la opción - disable-dtrace opción de configuración.
El soporte opcional para SystemTap puede desactivar con la opción - disable-systemtap opción de configuración.
Además de las opciones normales, la configuración script en la biblioteca GLib apoya estos argumentos adicionales:
- 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 GLib.
- Disable-gc-friendly y - enable-gc-friendly . De manera predeterminada, y con - disable-gc-friendly también, Glib no se borra la memoria para ciertos objetos antes de ser liberado. Por ejemplo, puede decidir Glib de reciclar los nodos GList poniéndolos en una lista libre. Sin embargo, los perfiles de memoria y herramientas de depuración como Valgrind funcionan mejor si una aplicación no mantiene colgando punteros a memoria liberada (a pesar de que estos indicadores ya no se anula la referencia), o punteros no válidos dentro de la memoria sin inicializar. La opción - enable-gc-friendly opción hace que la memoria Glib claro en estas situaciones:
Cuando la reducción de un Garray, Glib se borrará la memoria ya no está disponible en la matriz: reducir una matriz de 10 bytes a 7, y los 3 últimos bytes se borrará. Esto incluye la absorción de elementos simples y múltiples.
Al crecer un Garray, Glib borrará el espacio de memoria. Crecer una serie de 7 bytes a 10 bytes, y los 3 últimos bytes se borrará.
Lo anterior se aplica a GPtrArray también.
Cuando la liberación de un nodo de un GHashTable, Glib primero se borrará el nodo, que solía tener punteros a la clave y el valor almacenado en ese nodo.
Cuando la destrucción o eliminación de un nodo GTree, Glib borrará el nodo, que solía tener punteros a valor del nodo, y los subnodos izquierdo y derecho.
Como borrar la memoria tiene un coste, - disable-gc-friendly es el predeterminado.
- Disable-MEM-pools y - enable-MEM-pools . Muchos pequeños trozos de memoria se asignan con frecuencia a través de piscinas colectivas en GLib y se almacenan en caché después de la liberación de acelerar las reasignaciones. Para los sistemas de memoria dispersos este comportamiento es a menudo inferior, por lo que grupos de memoria puede desactivar el almacenamiento en caché para evitar la sobredimensión y el mantenimiento de fuerzas atómicas de trozos a través de la g_malloc () y g_free () funciones. Código actualmente afectada por lo siguiente:
GMemChunk s convertido prácticamente no efectiva
GSignal deshabilita el almacenamiento en caché (potencialmente muy lento)
GType no honra al GTypeInfo n_preallocs campo ya
la GBSearchArray bandera G_BSEARCH_ALIGN_POWER2 se vuelve no funcional
- With-threads. Especifique una implementación de hilos de usar. Las opciones disponibles son "POSIX" o "win32". Normalmente, configure debe ser capaz de resolver el sistema de roscas API por su propia cuenta.
- Disable-regex y - enable-regex . No GLib compilar con soporte para expresiones regulares. GLib será menor, ya que no necesita la biblioteca PCRE. Esto sin embargo no se recomienda, como programas pueden necesitar GRegex.
- With-pcre . Especifique si desea utilizar el interno o el suministrado por el sistema de biblioteca PCRE.
"Interna" significa que GRegex serán compilados para usar la biblioteca PCRE interna.
«Sistema» que GRegex será compilado para utilizar el sistema suministrado por la biblioteca PCRE.
Uso del PCRE interna es la solución preferida:
Proporcionado por el sistema PCRE tiene una copia separada de las grandes mesas utilizadas para el manejo de Unicode.
Algunos sistemas tienen bibliotecas PCRE compilados sin algunas de las características necesarias, como UTF-8 y el soporte Unicode.
PCRE usa algunas variables globales para la gestión de memoria y otras funciones. En el raro caso de un programa que utiliza tanto GRegex y PCRE (quizás indirectamente a través de una biblioteca), estas variables podría dar lugar a problemas cuando se modifican.
- Disable-included-printf y - enable-incluido printf . Por defecto la configuración script intentará detectar automáticamente si la biblioteca C proporciona un conjunto adecuado de funciones printf (). En detalle, configurar los controles que la semántica de snprintf () son los especificados por C99 y que los parámetros de posición según lo especificado en el Single Unix Specification son compatibles. Si este no es el caso, GLib incluirá una implementación de la printf () de la familia. Estas opciones se pueden utilizar para controlar de forma explícita si un fo ejecución del printf () la familia debe ser incluida o no.
- Disable-Bsymbolic y - enable-Bsymbolic . Por defecto, utiliza los GLib-Bsymbolic-funciones bandera vinculador para evitar intra-biblioteca saltos PLT. Un efecto secundario de esto es que ya no es posible reemplazar los usos internos de las funciones de GLib con LD_PRELOAD . Por lo tanto, puede tener sentido para desactivar esta función en algunas situaciones. La opción - disable-Bsymbolic opción permite hacer eso.
- Disable-gtk-doc y - enable-gtk-doc . Por defecto la configuración script intentará detectar automáticamente si el gtk-doc paquete está instalado. Si lo es, entonces se va a usar para extraer y construir la documentación para la biblioteca GLib. Estas opciones se pueden usar para controlar explícitamente si gtk-doc se debe utilizar o no. Si no se utiliza, los distribuidos, generados previamente los archivos HTML se instalará en lugar de construirlos en su máquina.
- Disable-man y - enable-man . Por defecto la configuración script intentará detectar automáticamente si xsltproc y las hojas de estilo Docbook necesarios están instalados. Si es así, entonces será utilizarlos para reconstruir las páginas man incluidas en el código fuente XML. Estas opciones se pueden utilizar para controlar explícitamente si las páginas de manual debe ser reconstruido utilizado o no. La distribución incluye pre-generados páginas de manual.
- Disable-xattr y - enable-xattr . Por defecto la configuración script intentará detectar automáticamente si el getxattr () familia de funciones disponibles. Si lo es, entonces el apoyo atributo extendido se incluirá en GIO. Estas opciones se pueden utilizar para controlar de forma explícita si el apoyo atributo extendido se debe incluir o no. getxattr () y amigos pueden ser proporcionados por glibc o por la biblioteca libattr independiente.
- Disable-selinux y - enable-selinux . Por defecto la configuración script detecta automáticamente si libselinux está disponible e incluye soporte de SELinux en GIO si lo es. Estas opciones se pueden usar para controlar explícitamente si el soporte de SELinux deben ser incluidos.
- Disable-dtrace y - enable-dtrace . Por defecto la configuración script detectará si el soporte DTrace está disponible, y lo utilizan.
- Disable-systemtap y - enable-systemtap . Esta opción requiere soporte DTrace. Si está disponible, entonces la configuración script también comprobar la presencia de SystemTap.
- Enable-gcov y - disable-gcov . Habilita la generación de informes de cobertura para las pruebas GLib. Esto requiere que el frontend lcov a gcov del Proyecto de Prueba Linux . Para generar un informe de cobertura, utilizar el destino marca lcov. El informe se coloca en el glib-lcovdirectorio.
- With-runtime-libdir = RELPATH . Permite especificar una ruta relativa a dónde instalar las bibliotecas de tiempo de ejecución (es decir, los archivos de biblioteca usados para correr, no el desarrollo, las aplicaciones de GLib). Esto puede ser usado en la operación de las configuraciones del sistema, donde las necesidades de los programas que utilizan GLib para ejecutar antes por ejemplo / usr se monta. Por ejemplo, si LIBDIR es / usr / lib y .... / / lib se pasa a - with-runtime-libdir entonces las bibliotecas de tiempo de ejecución se instala en / lib en lugar de / usr / lib .
Generado por GTK-Doc V1.18
Este sitio web está disponible en muchos idiomas