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_ macros ที่ไม่ได้ถูกกำหนดนั้นเป็นเพราะการรวม neccessary (glib / gi18n.h) ขาดหายไป ก่อนหน้านี้มีการรวมอยู่ในแฟ้มรวมอื่น (gtk / gtk.h) แต่ถูกลบออกในรุ่น gtk + ล่าสุด
lanoxx

คำตอบ:


1

ดูเหมือนว่าคุณโทรมาก็คือautogen.shautoreconf

โครงการอาจใช้intltoolแทน แต่ถ้าเป็นเช่นนั้นควรเลือกที่เพิ่มขึ้นและการโทรautoreconf intltoolizeถ้าเป็นการใช้ GNU gettext แน่นอนนี่จากautopointหน้าข้อมูลจะเป็นประโยชน์:

โปรแกรม 'autopoint' คัดลอกไฟล์โครงสร้างพื้นฐาน gettext มาตรฐานลงในแพ็คเกจต้นทาง มันแยกจากการเรียกแมโครของรูปแบบ 'AM_GNU_GETTEXT_VERSION (VERSION)' ที่พบในไฟล์ 'configure.in' หรือ 'configure.ac' ของแพ็คเกจรุ่น gettext ที่ใช้โดยแพ็คเกจและคัดลอกไฟล์โครงสร้างพื้นฐานที่เป็นของรุ่นนี้ เป็นแพคเกจ

และถ้าเราเขียนAM_GNU_GETTEXT_VERSIONแล้วจะเรียกอย่างถูกต้องโดยautopointautoreconf

หากต้องการแยกโครงสร้างพื้นฐานที่พร้อมใช้งานล่าสุดซึ่งเป็นไปตามข้อกำหนดรุ่นแล้วคุณสามารถใช้แบบฟอร์ม '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-basegettext

gettext-baseแพคเกจสำหรับการเรียกใช้โปรแกรมที่มีหลายภาษาในขณะที่ยังgettextมีชิ้นส่วนที่จำเป็นสำหรับการสร้าง


ฉันกำลังใช้งาน Ubuntu (11.10) Gettext ถูกติดตั้ง แต่ไม่ใช่ gettext-base
lanoxx

ฉันกำลังจัดการกับการปะแก้ (ผ่าน src code + ./configure) Fedora ที่สร้างขึ้นมาพร้อมกับรหัสเพิ่มเติมและฉันพบปัญหานี้ การติดตั้ง gettext และ re-./configure บน autoconf / autogen / m4 ยังไม่ได้ช่วย ฉันสังเกตว่า pkg-config ไม่คิดว่าติดตั้ง getttext แต่ฉันสังเกตเห็นว่า pkg-config บนระบบที่ทันสมัยกว่านั้นจะไม่แสดงรายการ gettext แม้ว่าจะติดตั้ง gettext-base ก็ตาม
mcr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.