configure.ac:不使用 gettext

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,因此我对此警告感到困惑。

我还收到了很多N_未定义宏的警告,所以这可能是相关的? [更新]请参阅下面的评论[/更新]

答案1

什么操作系统?

您的系统可能没有全部或部分 gettext 系统,即开发部分。在许多发行版中,例如 Debian/Ubuntu,gettext 被分为多个包:gettext-basegettext

gettext-base软件包用于运行多语言程序,同时gettext具有构建所需的部分。

答案2

看来你autogen.sh正在打电话autoreconf

该项目可能正在使用intltool,但如果是这样,autoreconf应该选择并调用intltoolize.如果它确实使用 GNU gettext 那么autopoint信息页面中的这个会很有帮助:

“autopoint”程序将标准 gettext 基础结构文件复制到源包中。它从包的“configure.in”或“configure.ac”文件中找到的“AM_GNU_GETTEXT_VERSION(VERSION)”形式的宏调用中提取包使用的 gettext 版本,并复制属于该版本的基础结构文件放入包中。

如果我们写AM_GNU_GETTEXT_VERSIONthenautopoint就会被正确调用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_VERSIONconfigure.ac

相关内容