configure.ac: nie używa gettext


13

Próbuję skompilować aplikację gnome i jestem ciekawy, co oznacza dane wyjściowe po uruchomieniu autogen.shskryptu:

~/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...]

Dlaczego otrzymuję informacje configure.ac: not using Gettext? Czy to ostrzeżenie i czy powinienem zmienić niektóre pliki konfiguracyjne, aby to naprawić? Wiem, że aplikacja ma po/folder, więc myślę, że powinna używać Gettext, dlatego jestem zdezorientowany tym ostrzeżeniem.

Miałem też wiele ostrzeżeń przy N_braku definicji makra, więc może to być powiązane? [Aktualizacja] Patrz komentarz poniżej [/ Aktualizacja]


Problem z nieokreśleniem makr N_ polegał na tym, że brakowało niezbędnego włączenia (glib / gi18n.h). To było wcześniej dołączone do innego pliku dołączanego (gtk / gtk.h), ale zostało usunięte w najnowszej wersji gtk +.
lanoxx

Odpowiedzi:


1

Wygląda na autogen.shto, że dzwonisz autoreconf.

Projekt może intltoolzamiast tego używać, ale jeśli tak, autoreconfpowinien to odebrać i zadzwonić intltoolize. Jeśli zdecydowanie używa GNU gettext, autopointpomocne jest to na stronie informacyjnej:

Program „autopunkt” kopiuje standardowe pliki infrastruktury gettext do pakietu źródłowego. Wyodrębnia z wywołania makra w postaci „AM_GNU_GETTEXT_VERSION (VERSION)”, znalezionego w pliku „configure.in” lub „configure.ac” pakietu, wersji gettext używanej przez pakiet, i kopiuje pliki infrastruktury należące do tej wersji do paczki.

A jeśli piszemy, AM_GNU_GETTEXT_VERSIONto autopointjest poprawnie wywoływane przez autoreconf.

Aby wyodrębnić najnowszą dostępną infrastrukturę, która spełnia wymagania dotyczące wersji, możesz zamiast tego użyć formularza „AM_GNU_GETTEXT_REQUIRE_VERSION (VERSION)”. Na przykład, jeśli gettext 0.19.8 jest zainstalowany w twoim systemie i zażądane jest „0.19.1”, wówczas pliki infrastruktury wersji 0.19.8 zostaną skopiowane do pakietu źródłowego.

Problem pojawia się tylko po przejściu na tę wersję makra i chociaż robi to, co mówi na puszce, nie jest to znane autoreconfi widzimy łatkę do wsparcia .

Użytkownicy Gentoo mogą uzyskać takie samo zachowanie w ebuildach, korzystając z naszej eautoreconffunkcji.

Pisanie, AM_GNU_GETTEXT_VERSIONa AM_GNU_GETTEXT_REQUIRE_VERSIONpotem bezpośrednio po sobie, configure.acgeneruje ostrzeżenie, ale wydaje się, że przynosi pożądany rezultat.


5

Jaki system operacyjny

Prawdopodobnie twój system nie ma całego lub części systemu gettext, a mianowicie części programistycznych. W wielu dystrybucjach, np. Debian / Ubuntu, gettext jest podzielony na wiele pakietów: gettext-basei gettext.

gettext-basePakiet jest do uruchamiania programów, które są wielojęzyczne, natomiast gettextposiada niezbędne elementy do budowy.


Korzystam z systemu Ubuntu (11.10). Gettext jest zainstalowany, ale nie gettext-base.
lanoxx

Mam do czynienia z łataniem (za pomocą kodu src + ./configure) starej platformy zbudowanej przez Fedorę z większą ilością kodu i napotykam ten problem. Instalowanie gettext i ponowna konfiguracja na autoconf / autogen / m4 nie pomogły do ​​tej pory. Zauważam, że pkg-config nie uważa, że ​​getttext jest zainstalowany. Ale zauważam, że pkg-config w nowszych systemach również nie wyświetla gettext, nawet jeśli gettext-base jest zainstalowany.
mcr
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.