Что такое 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?
Ответы
Ответ 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
, между прочим
Ответ 5
Это выглядит многообещающим - http://code.google.com/p/rudix/downloads/detail?name=static-libintl-0.18.1.1-5.pkg&can=2&q= - похоже, содержит libintl как pkg. Он разрешил зависимость от libintl для меня.
Ответ 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. За помощью и Подробнее см. в документации и других ресурсах ниже.