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_宏的问题是因为缺少必需的包含(glib / gi18n.h)。该文件先前已包含在另一个包含文件(gtk / gtk.h)中,但已在最新的gtk +版本中删除。
lanoxx 2012年

Answers:


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我们看到了一个支持补丁

Gentoo用户可以通过使用我们的功能在ebuild中获得相同的行为eautoreconf

我自己撰写AM_GNU_GETTEXT_VERSIONAM_GNU_GETTEXT_REQUIRE_VERSION在撰写之后立即configure.ac产生警告,但否则似乎会产生所需的结果。


5

什么操作系统?

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

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


我正在Ubuntu(11.10)上运行。已安装Gettext,但未安装gettext-base。
lanoxx 2012年

我正在处理(通过src代码+ ./configure)具有更多代码的旧的Fedora构建平台,并且遇到了这个问题。到目前为止,安装gettext以及在autoconf / autogen / m4上进行re-./configure都没有帮助。我注意到pkg-config认为没有安装getttext。但是,我注意到,即使安装了gettext-base,在更现代的系统上,pkg-config也不会列出gettext。
mcr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.