configure.ac: не використовується gettext


13

Я намагаюся скласти програму gnome, і мені цікаво, що означає вихід під час запуску autogen.shсценарію:

~/Documents/Code/window-picker-applet $./autogen.sh
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --install --copy
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /usr/bin/autoconf
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
data/Makefile.am:11: `%'-style pattern rules are a GNU make extension
data/Makefile.am:11: wildcard $(top_srcdir: non-POSIX variable name
data/Makefile.am:11: (probably a GNU make extension)
autoreconf: Leaving directory `.'
[Output trunkated...]

Чому я отримую інформацію configure.ac: not using Gettext? Це попередження, і чи потрібно я змінити деякі файли конфігурації, щоб виправити це? Я знаю, що у додатку є po/папка, тому я думаю, що вона повинна використовувати Gettext, тому я плутаюся з цього попередження.

У мене також було багато попереджень про те, що N_макрос не визначався, тому це може бути пов'язано? [Оновити] Див. Коментар нижче [/ Оновлення]


Проблема з макросами N_ не визначена, тому що необхідне включати (glib / gi18n.h) не було. Раніше це було включено до іншого файлу включення (gtk / gtk.h), але він був видалений в останній версії gtk +.
lanoxx

Відповіді:


1

Схоже, ваш autogen.shдзвонить autoreconf.

Проект може використовуватись intltoolнатомість, але якщо це так, autoreconfслід забрати це та зателефонувати intltoolize. Якщо ви точно використовуєте getnext GNU, autopointце корисно для цієї сторінки:

Програма "autopoint" копіює стандартні файли інфраструктури gettext у вихідний пакет. Він витягує з макровиклику форми "AM_GNU_GETTEXT_VERSION (VERSION)", знайденого у файлі "configure.in" або "configure.ac" пакета, версії gettext, використовуваної пакетом, та копіює інфраструктурні файли, що належать до цієї версії в пакет.

І якщо ми пишемо, AM_GNU_GETTEXT_VERSIONтоді autopointправильно викликається autoreconf.

Щоб витягнути останню доступну інфраструктуру, яка задовольняє вимогу версії, ви можете замість цього скористатися формою "AM_GNU_GETTEXT_REQUIRE_VERSION (VERSION)". Наприклад, якщо у вашій системі встановлено gettext 0.19.8 і запитується "0.19.1", то інфраструктурні файли версії 0.19.8 будуть скопійовані у вихідний пакет.

Проблема з’являється лише при переході на цю версію макросу, і хоча вона виконує те, що написано на тині, про це не відомо, autoreconfі ми бачимо патч для підтримки .

Користувачі Gentoo можуть отримати таку саму поведінку в ebuilds, використовуючи нашу eautoreconfфункцію.

Писання AM_GNU_GETTEXT_VERSIONта AM_GNU_GETTEXT_REQUIRE_VERSIONодразу після цього в мене configure.acстворює попередження, але в іншому випадку, як видається, дає бажаний результат.


5

Яка ОС?

Ймовірно, у вашій системі немає всієї або деякої системи gettext, а саме частини розробки. У багатьох дистрибутивах, наприклад, Debian / Ubuntu, gettext розділений на кілька пакетів: gettext-baseі gettext.

gettext-baseПакет для запуску програм , які багатомовні, в той час як gettextє необхідні деталі для будівництва.


Я біжу на Ubuntu (11.10). Gettext встановлений, але не gettext-base.
lanoxx

Я маю справу з виправленням (через src-код + ./configure) старою платформою, побудованою Fedora з більшою кількістю коду, і я стикаюся з цією проблемою. Встановлення gettext, і пере- / конфігурація на autoconf / autogen / m4 поки не допомогло. Я помічаю, що pkg-config не вважає, що getttext встановлений. Але я зауважую, що pkg-config у більш сучасних системах також не відображає gettext, навіть коли встановлена ​​база gettext.
mcr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.