web-dev-qa-db-fra.com

Qu'est-ce que libintl.h et où puis-je l'obtenir?

Essayer de faire une installation de git à partir des sources, et cela ne cesse de figer l'erreur:

 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

Aucune quantité de Google n'a rien révélé sur lib.intl.h. Quelle est cette bibliothèque insaisissable, et comment puis-je l'obtenir afin que je puisse enfin installer git?

43
Adam Templeton

Selon le système, cela fait probablement partie de la bibliothèque GNU C (glibc).

Notez que la simple installation du fichier libintl.h ne vous fera probablement aucun bien.

Sur les systèmes basés sur Debian (y compris Debian, Ubuntu et Linux Mint), cela fait partie du paquetage libc6-dev, installé avec:

Sudo apt-get install libc6-dev

Puisque vous utilisez Mac OS X, une recherche sur Google "libintl.h OSX" montre que beaucoup de personnes ont des problèmes similaires. Selon le fichier INSTALL dans les sources Git:

Définissez NO_GETTEXT pour désactiver la prise en charge de la localisation et faire en sorte que Git utilise uniquement l'anglais. Sous autoconf, le script configure le fera automatiquement s'il ne trouve pas libintl sur le système.

32
Keith Thompson

FWIW sur OSX avec El Capitan et homebrew, j’ai fait un:

1) Je ne savais pas si la mise à jour El Capitan avait cassé quelque chose, alors je me suis d'abord assuré d'avoir le dernier gettext:

$ brew reinstall gettext

Ensuite, j'ai dû refaire le lien en faisant:

$ brew unlink gettext && brew link gettext --force

Après cela, d'autres outils ont pu le trouver et la vie est revenue à la normale.

27
rotten

J'ai appris libintl vient de libgettext. Si vous avez déjà installé gettext by Homebrew, vous verrez:

$ 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..>

et les travaux suivants pour moi sur la question de "bibliothèque introuvable pour -lintl"

ln -s /usr/local/Cellar/gettext/0.18.3.2/lib/libintl.* /usr/local/lib/
22
ronnefeldt

Lorsque les packages recherchent ce fichier, installez ou créez le package gettext GNU. Ce paquet "installe" ${prefix}/include/libintl.h, entre autres

7
Michael Felt

Pour installer la dernière version de git sur OSX Lion, voici ce que j'ai fait:

* Notez que si vous n'avez pas encore installé Git, vous pouvez simplement le télécharger sur le site et le décompresser en ~/src/git

Je recommande également de faire un whereis git pour voir si vous l'avez déjà installé afin que vous sachiez à quoi définir votre préfixe. Le mien était /usr/bin/git alors je règle mon préfixe juste /usr

mkdir ~/src
git clone https://github.com/git/git.git
cd git
make configure
./configure --prefix=/usr
make
make install

En procédant ainsi, je n'ai pas eu à télécharger de bibliothèque supplémentaire ni à chercher des réponses sur les forums. Grâce à automake, je sais que git est configuré pour mon système et fonctionnera sans problème.

3
blindMoe

Si vous pouvez trouver la version appropriée de Libtools (à partir de http://ftp.gnu.org/gnu/libtool/ ), vous la trouverez peut-être dans le package. 

Sinon, vous pouvez utiliser la configuration ci-dessous pour supprimer cette dépendance:

./configure --disable-nls
3
AvkashChauhan

Si vous ne vous souciez pas de la localisation et que vous vous contentez de l'anglais, définissez NO_GETTEXT dans Makefile

De la Makefile:

Définissez NO_GETTEXT si vous ne voulez pas que la sortie de Git soit traduite . Un Git traduit nécessite GNU libintl ou une autre implémentation de gettext, plus libintl-Perl au moment de l'exécution.

2
manojlds

Cela semble prometteur - http://code.google.com/p/rudix/downloads/detail?name=static-libintl-0.18.1.1-5.pkg&can=2&q= - semble contenir libintl sous forme de pkg . Cela a résolu une dépendance sur libintl pour moi.

2
ljs

installer macport et taper sur terminal 

Sudo port install libcxx
1
Jorge Miguel

Quelle est cette bibliothèque insaisissable, et comment puis-je l'obtenir afin que je puisse enfin installer git?

À partir du manuel GNU :

11.21 libintl.h

Libintl est une bibliothèque qui fournit un support en langue maternelle aux programmes.

Définit les macros __USE_GNU_GETTEXT, __GNU_GETTEXT_SUPPORTED_REVISION, et déclare les fonctions gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext, textdomain, bindtextdomain, bind_textdomain_codeset.

Documentation:

Module Gnulib: gettext

Problèmes de portabilité résolus par Gnulib, si GNU gettext est installé:

Ce fichier d’entête est manquant sur certaines plates-formes: 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, complet, MSVC 9, Interix 3.5, BeOS.

Les fonctions ne peuvent pas traiter les fichiers GNU .mo avec .__ dépendant du système. chaînes (de la version majeure 1 ou de la version mineure 1) sur certains non glibc plates-formes: NetBSD 3.0, Solaris 10.

Vous pouvez obtenir libintl.h auprès de Gnulib, qui est La bibliothèque de portabilité GNU . Il est disponible au téléchargement à partir de Savannah de GNU.

La page Web Gnulib indique également:

Gnulib ne fait pas de libération. Il est destiné à être utilisé à la source niveau.

Vous pouvez parcourir les sources actuelles de gnulib sur Savannah.

Pour utiliser Gnulib, vous pouvez récupérer son code source et son historique via Git anonyme, en utilisant la commande Shell suivante:

git clone git://git.savannah.gnu.org/gnulib.git

Les développeurs peuvent également récupérer le code source via un fichier Git, .__ non anonyme. à des fins de commet; pour plus de détails, s'il vous plaît voir Gnulib's fichier README de niveau supérieur.

Une fois que vous avez les sources, exécutez ./gnulib-tool --help. Pour l'aide et plus d'infos, voir la documentation et d'autres ressources ci-dessous.

0
jww

Si vous essayez de compiler AssaultCube et obtenez cette erreur (vous devez vous plaindre de l'absence de "INTL/libintl.h"), vous devez extraire INTL.framework du contenu de l'application AssaultCube et le placer dans/Library/Frameworks. Aucun paquet de MacPorts, HomeBrew, etc. ne peut le réparer. Très très ennuyeux, combien de projets open source ne parviennent pas à compiler.

0
sudo