Подтвердить что ты не робот

Что такое libintl.h и где я могу его получить?

Попытка сделать установку git из источника, и она продолжает поднимать ошибку:

 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

Никакого количества Googling ничего не появилось на lib.intl.h. Что это за неуловимая библиотека, и как я могу ее получить, чтобы наконец установить git?

4b9b3361

Ответ 1

В зависимости от системы он, вероятно, является частью библиотеки GNU C (glibc).

Обратите внимание, что просто установка файла libintl.h вряд ли принесет вам пользу.

В системах на базе Debian (включая Debian, Ubuntu и Linux Mint) это часть пакета libc6-dev, установленная с помощью

sudo apt-get install libc6-dev

Поскольку вы используете Mac OS X, поиск Google для "libintl.h OSX" показывает много людей, имеющих схожие проблемы. Согласно файлу INSTALL в источниках Git:

Установите NO_GETTEXT, чтобы отключить поддержку локализации и сделать Git только английский. В autoconf configure script будет делать это автоматически, если он не может найти libintl в системе.

Ответ 2

Я узнал, что libintl происходит из libgettext. Если вы уже установили gettext by Homebrew, вы увидите:

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

и ниже для меня работает проблема "библиотека, не найденная для -lintl"

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

Ответ 3

FWIW на OSX с El Capitan и homebrew, я сделал:

1) Я не был уверен, что обновление El Capitan сломало что-то, поэтому сначала я убедился, что у меня был последний gettext:

$ brew reinstall gettext

Затем мне пришлось повторно связать, сделав:

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

После этого другие инструменты смогли найти его, и жизнь вернулась к нормальной жизни.

Ответ 4

Когда пакеты ищут этот файл, установите или создайте пакет GNU gettext. Эти пакеты "устанавливают" ${prefix}/include/libintl.h, между прочим

Ответ 6

Если вы не заботитесь о локализации и поддерживаете только английский язык, определите NO_GETTEXT в Makefile

Из Makefile:

Определите NO_GETTEXT, если вы не хотите выводить вывод Git. В переводе Git требуется GNU libintl или другая реализация gettext, плюс libintl-perl во время выполнения.

Ответ 7

Для установки самой новой версии git на OSX Lion это то, что я сделал:

* Обратите внимание, что если у вас нет установленного git, вы можете просто загрузить его с сайта и распаковать его на ~/src/git

Я также рекомендую сделать whereis git, чтобы убедиться, что вы уже установили его, чтобы вы знали, как настроить префикс. Mine был /usr/bin/git, поэтому я установил свой префикс только /usr

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

Таким образом, мне не нужно было загружать какие-либо дополнительные библиотеки или проводить любую охоту на форумах для ответов. Благодаря automake я знаю, что git настроен для моей системы и будет работать без каких-либо икота.

Ответ 8

Если вы можете найти правильную версию Libtools (от http://ftp.gnu.org/gnu/libtool/), вы можете найти ее в пакете.

В противном случае вы можете использовать ниже для настройки, чтобы удалить эту зависимость:

./configure --disable-nls

Ответ 9

установить macport и тип на терминале

sudo port install libcxx

Ответ 10

Если вы пытаетесь скомпилировать AssaultCube и получаете эту ошибку (следует просить о том, что "INTL/libintl.h" отсутствует), вам нужно взять INTL.framework из содержимого приложения AssaultCube и поместить его в/Library/Каркасы. Пакеты с MacPorts, HomeBrew и т.д. Не могут исправить. Очень очень раздражает то, сколько проектов с открытым исходным кодом не удается скомпилировать.

Ответ 11

Что это за неуловимая библиотека, и как я могу ее получить, чтобы наконец установить git?

Из руководство GNU:

11.21 libintl.h

Libintl - это библиотека, которая поддерживает поддержку на родном языке для программ.

Определяет макросы __USE_GNU_GETTEXT, __GNU_GETTEXT_SUPPORTED_REVISION и объявляет функции gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext, textdomain, bindtextdomain, bind_textdomain_codeset.

Документация:

Модуль Gnulib: gettext

Проблемы с переносимостью, установленные Gnulib, если установлен GNU gettext:

Этот файл заголовка отсутствует на некоторых платформах: 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.

Функции не могут работать с файлами GNU.mo с системно-зависимыми строки (основной версии 1 или младшей версии 1) на некоторых негладких платформы: NetBSD 3.0, Solaris 10.

Вы можете получить libintl.h от Gnulib, который Библиотека совместимости GNU. Он доступен для загрузки из GNU Savannah.

веб-страница Gnulib также гласит:

Gnulib не выпускает релизы. Он предназначен для использования в источнике уровень.

Вы можете просмотреть текущие источники gnulib в Savannah.

Чтобы использовать Gnulib, вы можете получить исходный код и его историю через анонимный Git, используя следующую команду оболочки:

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

Разработчики также могут извлекать исходный код через не анонимный Git, для целей совершения; для получения дополнительной информации см. Gnulib's файл README верхнего уровня.

После того, как у вас есть источники, запустите. /gnulib -tool --help. За помощью и Подробнее см. в документации и других ресурсах ниже.