configure.ac:不使用 gettext
我正在嘗試編譯一個 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,因此我對這個警告感到困惑。
我也有很多$$ Update $$請參閱下面的評論$$ /Update $$N_
未定義宏的警告,所以這可能是相關的?
看起來你
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
thenautopoint
被正確呼叫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
生成一個警告,但在其他方面似乎會產生預期的結果。
什麼作業系統?
您的系統可能沒有全部或部分 gettext 系統,即開發部分。在許多發行版中,例如 Debian/Ubuntu,gettext 被分成多個包:
gettext-base
和gettext
.該
gettext-base
軟體包用於執行多語言程序,同時gettext
具有建構所需的部分。