configure.ac: không sử dụng gettext


13

Tôi đang cố gắng biên dịch một ứng dụng gnome và tôi tò mò không biết đầu ra có nghĩa gì khi tôi chạy autogen.shtập lệnh:

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

Tại sao tôi nhận được thông tin configure.ac: not using Gettext? Đó có phải là một cảnh báo và tôi có nên thay đổi một số tệp cấu hình để sửa nó không? Tôi biết ứng dụng này có một po/thư mục vì vậy tôi nghĩ rằng nó nên sử dụng Gettext, do đó tôi bối rối về cảnh báo này.

Tôi cũng đã có rất nhiều cảnh báo với N_macro không được xác định, vì vậy điều này có thể liên quan? [Cập nhật] Xem bình luận bên dưới [/ Cập nhật]


Vấn đề với các macro N_ không được xác định là do thiếu bao gồm (glib / gi18n.h). Điều này trước đây đã được bao gồm trong một tệp bao gồm khác (gtk / gtk.h) nhưng nó đã bị xóa trong phiên bản gtk + mới nhất.
lanoxx

Câu trả lời:


1

Hình như bạn autogen.shđang gọi autoreconf.

Dự án có thể đang sử dụng intltoolthay thế nhưng nếu vậy autoreconfthì nên nhấc máy và gọi intltoolize. Nếu nó chắc chắn sử dụng GNU gettext thì điều này từ autopointtrang thông tin là hữu ích:

Chương trình 'autopoint' sao chép các tệp cơ sở hạ tầng gettext tiêu chuẩn vào một gói nguồn. Nó trích xuất từ ​​một cuộc gọi macro có dạng 'AM_GNU_GettEXT_VERSION (VERSION)', được tìm thấy trong tệp 'configure.in' hoặc 'configure.ac', phiên bản gettext được sử dụng bởi gói và sao chép các tệp cơ sở hạ tầng thuộc phiên bản này vào gói.

Và nếu chúng ta viết AM_GNU_GETTEXT_VERSIONthì autopointđược gọi chính xác bởi autoreconf.

Để trích xuất cơ sở hạ tầng mới nhất đáp ứng yêu cầu phiên bản, sau đó bạn có thể sử dụng biểu mẫu 'AM_GNU_GETTEXT_REQUIRE_VERSION (VERSION)'. Ví dụ: nếu gettext 0.19.8 được cài đặt trên hệ thống của bạn và '0.19.1' được yêu cầu, thì các tệp cơ sở hạ tầng của phiên bản 0.19.8 sẽ được sao chép vào gói nguồn.

Vấn đề chỉ xuất hiện khi chuyển sang phiên bản macro này và trong khi nó thực hiện những gì nó nói trên tin thì nó không được biết đến autoreconfvà chúng tôi thấy một bản vá để được hỗ trợ .

Người dùng Gentoo có thể có hành vi tương tự trong ebuild bằng cách sử dụng eautoreconfchức năng của chúng tôi .

Viết AM_GNU_GETTEXT_VERSIONAM_GNU_GETTEXT_REQUIRE_VERSIONngay lập tức sau đó trong chính tôi configure.actạo ra một cảnh báo nhưng nếu không thì dường như mang lại kết quả mong muốn.


5

HĐH gì?

Có khả năng hệ thống của bạn không có tất cả hoặc một số hệ thống gettext, cụ thể là các phần phát triển. Trong nhiều bản phân phối, ví dụ Debian / Ubuntu, gettext được tách thành nhiều gói: gettext-basegettext.

Các gettext-basegói là để chạy các chương trình đó là đa ngôn ngữ, trong khi gettextcó những phần cần thiết cho việc xây dựng.


Tôi đang chạy trên Ubuntu (11.10). Gettext được cài đặt nhưng không phải là gettext-base.
lanoxx

Tôi đang xử lý việc vá lỗi (thông qua mã src + ./có hình) một nền tảng được xây dựng cũ của Fedora với nhiều mã hơn và tôi đang gặp phải vấn đề này. Cài đặt gettext và cài đặt lại trên autoconf / autogen / m4 cho đến nay vẫn chưa giúp được gì. Tôi nhận thấy rằng pkg-config không nghĩ rằng getttext đã được cài đặt. Nhưng, tôi nhận thấy rằng pkg-config trên các hệ thống hiện đại hơn cũng không liệt kê gettext, ngay cả khi gettext-base được cài đặt.
mcr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.