webentwicklung-frage-antwort-db.com.de

Was ist libintl.h und wo bekomme ich es?

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?

43
Adam Templeton

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. Unter autoconf führt das Skript configure dies automatisch aus, wenn libintl nicht im System gefunden werden kann.

32
Keith Thompson

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.

27
rotten

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/
22
ronnefeldt

Wenn Pakete nach dieser Datei suchen, installieren oder erstellen Sie das gettext-Paket GNU. Dieses Paket "installiert" ua ${prefix}/include/libintl.h

7
Michael Felt

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.

3
blindMoe

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
3
AvkashChauhan

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.

2
manojlds

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.

2
ljs

installieren Sie macport und geben Sie das Terminal ein 

Sudo port install libcxx
1
Jorge Miguel

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 Funktionen gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext, textdomain, bindtextdomain, bind_textdomain_codeset.

Dokumentation:

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.

0
jww

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.

0
sudo