【问题标题】:How can I use gettext in vala?如何在 vala 中使用 gettext?
【发布时间】:2011-08-28 15:08:39
【问题描述】:

当我尝试在 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?

我该如何解决这个问题?

【问题讨论】:

    标签: gettext vala


    【解决方案1】:

    为了解决这个问题,我必须在 valac 命令中添加 -X -DGETTEXT_PACKAGE="..." 并将 const string GETTEXT_PACKAGE = "..."; 添加到源文件的顶部。

    如果我不将它添加到源文件的顶部,由于某种原因,我会从 C 编译器中收到很多 undeclared (first use in this function) 错误。

    不过,我确实收到了来自 C 编译器的关于重新定义 GETTEXT_PACKAGE 的警告。

    【讨论】:

    • 为避免重复的 GETTEXT_PACKAGE 值,您可以使用[CCode(cname="GETTEXT_PACKAGE")] extern const string GETTEXT_PACKAGE; 而不是const string GETTEXT_PACKAGE = "...";
    【解决方案2】:

    我认为最常见的解决方案是将 -DGETTEXT_PACKAGE="..." 传递给 C 编译器(如果您只是依靠 valac 来调用它,请将 -X -DGETTEXT_PACKAGE="..." 传递给valac)。

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 2012-05-01
        • 2011-03-31
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多