configure.ac : gettext를 사용하지 않음


13

그놈 응용 프로그램을 컴파일하려고하는데 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. GNU gettext를 확실히 사용하고 있다면 autopoint정보 페이지 에서 이것이 도움이됩니다.

'autopoint'프로그램은 표준 gettext 인프라 파일을 소스 패키지에 복사합니다. 패키지의 'configure.in'또는 'configure.ac'파일에있는 'AM_GNU_GETTEXT_VERSION (VERSION)'형식의 매크로 호출에서 패키지가 사용하는 gettext 버전을 추출하고이 버전에 속하는 인프라 파일을 복사합니다. 패키지에.

그리고 우리가 쓴 AM_GNU_GETTEXT_VERSION다면 autopoint에 의해 올바르게 호출됩니다 autoreconf.

버전 요구 사항을 충족하는 사용 가능한 최신 인프라를 추출하려면 대신 'AM_GNU_GETTEXT_REQUIRE_VERSION (VERSION)'형식을 사용할 수 있습니다. 예를 들어, gettext 0.19.8이 시스템에 설치되고 '0.19.1'이 요청되면 버전 0.19.8의 인프라 파일이 소스 패키지로 복사됩니다.

이 버전의 매크로로 전환 할 때만 문제가 발생하며, 주석에 알려진 autoreconf내용을 수행하는 동안 알려지지 않았 으며 지원 패치가 있습니다.

젠투 사용자는 기능사용하여 ebuild에서 동일한 동작을 얻을 수 있습니다 .eautoreconf

작성 AM_GNU_GETTEXT_VERSIONAM_GNU_GETTEXT_REQUIRE_VERSION즉시 나중에 내 자신에 configure.ac그렇지 않으면 경고를 생성 만하면 원하는 결과를 얻을 것으로 보인다.


5

어떤 OS?

시스템에 gettext 시스템의 전부 또는 일부, 즉 개발 부분이 없을 수 있습니다. 데비안 / 우분투와 같은 많은 배포판에서 gettext는 여러 패키지로 구분됩니다 : gettext-basegettext.

gettext-base패키지는 다국어 프로그램을 실행 gettext하는 데 필요한 반면 빌드에 필요한 부분이 있습니다.


우분투 (11.10)에서 실행 중입니다. Gettext가 설치되었지만 gettext-base는 아닙니다.
lanoxx

더 많은 코드로 오래된 Fedora 빌드 플랫폼 패치 (src 코드 + ./configure를 통해)를 처리하고 있으며이 문제가 발생합니다. autoconf / autogen / m4에서 gettext 및 re-./configure를 설치해도 도움이되지 않았습니다. pkg-config가 getttext가 설치되지 않았다고 생각합니다. 그러나 최신 시스템의 pkg-config에는 gettext-base가 설치되어 있어도 gettext가 표시되지 않습니다.
mcr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.