Beim Versuch, eine make-Installation von git aus dem Quellcode durchzuführen, wird der Fehler immer weiter angezeigt:
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
Auf der lib.intl.h ist noch kein Googling aufgetaucht. Was ist diese schwer fassbare Bibliothek und wie bekomme ich sie, damit ich endlich git installieren kann?
Je nach System ist sie wahrscheinlich Teil der GNU C-Bibliothek (glibc).
Beachten Sie, dass die Installation der Datei libintl.h
Ihnen wahrscheinlich nichts nützt.
Auf Debian-basierten Systemen (einschließlich Debian, Ubuntu und Linux Mint) ist es Teil des libc6-dev
-Pakets, das installiert wird mit:
Sudo apt-get install libc6-dev
Seit Sie Mac OS X verwenden, zeigt eine Google-Suche nach "libintl.h OSX" eine Menge Leute, die ähnliche Probleme haben. Entsprechend der INSTALL
-Datei in den Git-Quellen:
Stellen Sie
NO_GETTEXT
ein, um die Lokalisierungsunterstützung zu deaktivieren und Git nur Englisch zu verwenden. Unterautoconf
führt das Skriptconfigure
dies automatisch aus, wennlibintl
nicht im System gefunden werden kann.
FWIW unter OSX mit El Capitan und Homebrew habe ich gemacht:
1) Ich war mir nicht sicher, ob das Upgrade von El Capitan etwas kaputtgemacht hatte, also stellte ich zuerst sicher, dass ich den neuesten Gettext hatte:
$ brew reinstall gettext
Dann musste ich erneut verlinken, indem ich Folgendes tat:
$ brew unlink gettext && brew link gettext --force
Danach konnten andere Werkzeuge es finden und das Leben normalisierte sich wieder.
Ich habe gelernt, dass libintl aus libgettext stammt. Wenn Sie gettext bereits von Homebrew installiert haben, würden Sie Folgendes sehen:
$ 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..>
und die folgenden Arbeiten für mich zum Thema "Bibliothek nicht gefunden für -lintl"
ln -s /usr/local/Cellar/gettext/0.18.3.2/lib/libintl.* /usr/local/lib/
Wenn Pakete nach dieser Datei suchen, installieren oder erstellen Sie das gettext-Paket GNU. Dieses Paket "installiert" ua ${prefix}/include/libintl.h
Um die neueste Version von git unter OSX Lion zu installieren, habe ich Folgendes getan:
* Wenn Sie git noch nicht installiert haben, können Sie es einfach von der Site herunterladen und in ~/src/git
auspacken.
Ich empfehle auch, einen whereis git
zu machen, um zu sehen, ob Sie bereits installiert haben, damit Sie wissen, worauf Sie Ihr Präfix einstellen müssen. Meines war /usr/bin/git
, also habe ich mein Präfix auf /usr
gesetzt.
mkdir ~/src
git clone https://github.com/git/git.git
cd git
make configure
./configure --prefix=/usr
make
make install
Auf diese Weise musste ich keine zusätzlichen Bibliotheken herunterladen oder in Foren nach Antworten suchen. Dank automake weiß ich, dass git für mein System eingerichtet ist und ohne Probleme laufen kann.
Wenn Sie die richtige Version von Libtools (von http://ftp.gnu.org/gnu/libtool/ ) finden, finden Sie sie möglicherweise im Paket.
Andernfalls können Sie die Konfiguration unten verwenden, um diese Abhängigkeit zu entfernen:
./configure --disable-nls
Wenn Sie sich nicht für die Lokalisierung interessieren und nur mit Englisch in Ordnung sind, definieren Sie NO_GETTEXT
in der Makefile
Von der Makefile
:
Definieren Sie NO_GETTEXT, wenn Sie nicht möchten, dass die Git-Ausgabe übersetzt wird . Ein übersetztes Git benötigt GNU libintl oder eine andere gettext-Implementierung plus libintl-Perl zur Laufzeit.
Dies sieht vielversprechend aus - http://code.google.com/p/rudix/downloads/detail?name=static-libintl-0.18.1.1-5.pkg&can=2&q= - scheint libintl als Paket zu enthalten . Es löste eine Abhängigkeit von libintl für mich.
installieren Sie macport und geben Sie das Terminal ein
Sudo port install libcxx
Was ist diese schwer fassbare Bibliothek und wie bekomme ich sie, damit ich endlich git installieren kann?
Aus dem GNU Handbuch :
11.21 libintl.h
Libintl ist eine Bibliothek, die Programmen Muttersprachenunterstützung bietet.
Definiert die Makros
__USE_GNU_GETTEXT
,__GNU_GETTEXT_SUPPORTED_REVISION
und deklariert die Funktionengettext
,dgettext
,dcgettext
,ngettext
,dngettext
,dcngettext
,textdomain
,bindtextdomain
,bind_textdomain_codeset
.Dokumentation:
- 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 .
Gnulib-Modul: gettext
Von Gnulib behobene Portabilitätsprobleme, wenn GNU gettext installiert ist:
Diese Header-Datei fehlt auf einigen Plattformen: 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.1, mingw, MSVC 9, Interix 3.5, BeOS.
Die Funktionen können keine GNU .mo-Dateien mit systemabhängigem .__ verarbeiten. Zeichenfolgen (der Hauptversion 1 oder der Nebenversion 1) auf einigen nicht-glibc Plattformen: NetBSD 3.0, Solaris 10.
Sie erhalten libintl.h
von Gnulib. Dies ist Die GNU Portability Library . Es kann von GNU's Savannah heruntergeladen werden.
Die Gnulib-Webseite gibt außerdem an:
Gnulib macht keine Releases. Es soll an der Quelle verwendet werden Niveau.
Sie können die aktuellen Gnulib-Quellen in Savannah durchsuchen.
Um Gnulib zu verwenden, können Sie seinen Quellcode und seinen Verlauf über .__ abrufen. anonymes Git mit dem folgenden Shell-Befehl:
git clone git://git.savannah.gnu.org/gnulib.git
Entwickler können den Quellcode auch über nicht anonymes Git, .__ abrufen. für die Zwecke von Commits; Details finden Sie in Gnulibs Datei der obersten Ebene README.
Nachdem Sie die Quellen erhalten haben, führen Sie ./gnulib-tool --help aus. Für Hilfe und Weitere Informationen finden Sie in der Dokumentation und anderen Ressourcen.
Wenn Sie versuchen, AssaultCube zu kompilieren, und Sie erhalten diesen Fehler (sollte beschwert werden, dass "INTL/libintl.h" fehlt), müssen Sie INTL.framework aus dem Inhalt der AssaultCube-App entnehmen und in/Library/Frameworks ablegen. Keine Pakete von MacPorts, HomeBrew usw. können das Problem beheben. Sehr ärgerlich, wie viele Open Source-Projekte nicht kompiliert werden können.