当我尝试在 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?
我怎样才能解决这个问题?
为了解决这个问题,我必须同时添加-X -DGETTEXT_PACKAGE="..."
到 valac 命令并添加const string GETTEXT_PACKAGE = "...";
到源文件的顶部。
如果我不将它添加到源文件的顶部,undeclared (first use in this function)
由于某种原因,我会从 C 编译器中得到很多错误。
但是,我确实收到了来自 C 编译器的关于重新定义 GETTEXT_PACKAGE 的警告。
我认为最常见的解决方案是将 -DGETTEXT_PACKAGE="..." 传递给 C 编译器(如果您只是依靠 valac 调用它,请将 -X -DGETTEXT_PACKAGE="..." 传递给 valac)。