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?
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. Sousautoconf
, le scriptconfigure
le fera automatiquement s'il ne trouve paslibintl
sur le système.
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.
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/
Lorsque les packages recherchent ce fichier, installez ou créez le package gettext GNU. Ce paquet "installe" ${prefix}/include/libintl.h
, entre autres
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.
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
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.
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.
installer macport et taper sur terminal
Sudo port install libcxx
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 fonctionsgettext
,dgettext
,dcgettext
,ngettext
,dngettext
,dcngettext
,textdomain
,bindtextdomain
,bind_textdomain_codeset
.Documentation:
- 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 .
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.
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.