remove - git tag best practices
¿Qué es libintl.h y dónde puedo obtenerlo? (11)
Intentando hacer un make install de git desde la fuente, y sigue generando el error:
make install
* new build flags or prefix
CC credential-store.o
In file included from credential-store.c:1:
In file included from ./cache.h:8:
./gettext.h:17:11: fatal error: ''libintl.h'' file not found
# include <libintl.h>
^
1 error generated.
make: *** [credential-store.o] Error 1
Ninguna cantidad de Google ha encontrado nada en lib.intl.h. ¿Qué es esta biblioteca esquiva y cómo puedo obtenerla para poder instalar git finalmente?
¿Qué es esta biblioteca esquiva y cómo puedo obtenerla para poder instalar git finalmente?
Del manual de GNU :
11.21 libintl.h
Libintl es una biblioteca que proporciona soporte de idiomas nativos para programas.
Define las macros
__USE_GNU_GETTEXT
,__GNU_GETTEXT_SUPPORTED_REVISION
y declara las funcionesgettext
,dgettext
,dcgettext
,ngettext
,dngettext
,dcngettext
,textdomain
,bindtextdomain
,bind_textdomain_codeset
.Documentación:
- http://www.gnu.org/software/libc/manual/html_node/Message-catalogs-with-gettext.html ,
- http://www.gnu.org/software/gettext/manual/html_node/gettext.html .
Módulo gnulib: gettext
Problemas de portabilidad corregidos por Gnulib, si GNU gettext está instalado:
Este archivo de encabezado falta en algunas plataformas: Mac OS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF / 1 5.1, mingw, MSVC 9, Interix 3.5, BeOS .
Las funciones no pueden manejar archivos GNU .mo con cadenas dependientes del sistema (de la versión principal 1 o de la versión secundaria 1) en algunas plataformas que no son glibc: NetBSD 3.0, Solaris 10.
Puede obtener libintl.h
de Gnulib, que es la biblioteca de portabilidad de GNU . Está disponible para descargar desde Savannah de GNU.
La página web de Gnulib también establece:
Gnulib no hace lanzamientos. Está destinado a ser utilizado en el nivel de origen.
Puede navegar por las fuentes de gnulib actuales en Savannah.
Para usar Gnulib, puede recuperar su código fuente y su historial a través de Git anónimo, usando el siguiente comando de shell:
git clone git://git.savannah.gnu.org/gnulib.git
Los desarrolladores también pueden recuperar el código fuente a través de Git no anónimo, con el fin de hacer confirmaciones; Para obtener más información, consulte el archivo README de nivel superior de Gnulib.
Una vez que tenga las fuentes, ejecute ./gnulib-tool --help. Para obtener ayuda y más información, consulte la documentación y otros recursos a continuación.
Aprendí que libintl viene de libgettext. Si ya instaló gettext por Homebrew, vería:
$ locate libintl
/usr/local/Cellar/gettext/0.18.3.2/lib/libintl.8.dylib
/usr/local/Cellar/gettext/0.18.3.2/lib/libintl.a
/usr/local/Cellar/gettext/0.18.3.2/lib/libintl.dylib
<..snip..>
y lo siguiente funciona para mí en el tema de "biblioteca no encontrada para -lintl"
ln -s /usr/local/Cellar/gettext/0.18.3.2/lib/libintl.* /usr/local/lib/
Cuando los paquetes buscan este archivo, instale o genere el paquete gettext de GNU. Este paquete "instala" ${prefix}/include/libintl.h
, entre otras cosas
Dependiendo del sistema, es probable que sea parte de la biblioteca GNU C (glibc).
Tenga en cuenta que no es probable que la instalación del archivo libintl.h
le libintl.h
nada.
En los sistemas basados en Debian (incluidos Debian, Ubuntu y Linux Mint), es parte del paquete libc6-dev
, instalado con:
sudo apt-get install libc6-dev
Ya que estás usando Mac OS X, una búsqueda en Google de "libintl.h OSX" muestra que muchas personas tienen problemas similares. Según el archivo INSTALL
en las fuentes de Git:
Configure
NO_GETTEXT
para desactivar el soporte de localización y hacer que Git solo use el inglés. Enautoconf
el script deconfigure
lo hará automáticamente si no puede encontrarlibintl
en el sistema.
Esto parece prometedor: http://code.google.com/p/rudix/downloads/detail?name=static-libintl-0.18.1.1-5.pkg&can=2&q= - parece contener libintl como un pkg. Se resolvió una dependencia en libintl para mí.
FWIW en OSX con El Capitán y homebrew, hice un:
1) No estaba seguro de si la actualización de El Capitán había roto algo, así que primero me aseguré de tener el último gettext:
$ brew reinstall gettext
Luego tuve que volver a enlazar haciendo:
$ brew unlink gettext && brew link gettext --force
Después de eso, otras herramientas pudieron encontrarlo y la vida volvió a la normalidad.
Para instalar la versión más reciente de git en OSX Lion, esto es lo que hice:
* Tenga en cuenta que si no tiene git ya instalado, solo puede descargarlo del sitio y descomprimirlo en ~/src/git
También recomiendo hacer un whereis git
para ver si ya lo tiene instalado para que sepa en qué establecer su prefijo. El mío era /usr/bin/git
así que puse mi prefijo a solo /usr
mkdir ~/src
git clone https://github.com/git/git.git
cd git
make configure
./configure --prefix=/usr
make
make install
Al hacerlo de esta manera, no tuve que descargar bibliotecas adicionales ni buscar en los foros para obtener respuestas. Gracias a automake, sé que git está configurado para mi sistema y se ejecutará sin ningún problema.
Si está intentando compilar AssaultCube y está recibiendo este error (debería quejarse de que falta "INTL / libintl.h"), debe tomar INTL.framework de los contenidos de la aplicación de AssaultCube y ponerlo en / Library / Frameworks. Ningún paquete de MacPorts, HomeBrew, etc. puede arreglarlo. Muy muy molesto cuántos proyectos de código abierto no se compilan.
Si no te importa la localización y estás bien solo con el inglés, define NO_GETTEXT
en el Makefile
Desde el Makefile
:
Defina NO_GETTEXT si no desea que la salida de Git se traduzca. Un Git traducido requiere GNU libintl u otra implementación de gettext, más libintl-perl en tiempo de ejecución.
Si puede encontrar la versión adecuada de Libtools (desde http://ftp.gnu.org/gnu/libtool/ ), puede encontrarla en el paquete.
De lo contrario, puede utilizar a continuación la configuración para eliminar esta dependencia:
./configure --disable-nls
instala macport y escribe en la terminal
sudo port install libcxx