如何在Vala中使用gettext?

5
当我尝试在Vala中使用gettext时,Vala没有出现任何错误或警告,但是从C编译器中却得到以下错误:
/usr/include/glib-2.0/glib/gi18n-lib.h:29:2: error: #error You must define GETTEXT_PACKAGE before including gi18n-lib.h. Did you forget to include config.h?

我该如何修复这个问题?
3个回答

5
为了解决这个问题,我必须在valac命令中添加-X -DGETTEXT_PACKAGE="...",并在我的源文件顶部添加const string GETTEXT_PACKAGE = "...";。如果我没有在源文件中添加这些内容,由于某种原因,C编译器会出现许多undeclared (first use in this function)错误。然而,我确实收到了C编译器重新定义GETTEXT_PACKAGE的警告。

1
为避免重复的GETTEXT_PACKAGE值,您可以使用[CCode(cname="GETTEXT_PACKAGE")] extern const string GETTEXT_PACKAGE;代替const string GETTEXT_PACKAGE = "..."; - antoyo
我认为只需要这样:extern const string GETTEXT_PACKAGE; - Itay Grudev

3

我认为最常见的解决方案就是向C编译器传递-DGETTEXT_PACKAGE="..."参数(如果你只依赖于valac调用它,请向valac传递-X -DGETTEXT_PACKAGE="..."参数)。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接