Как я могу использовать gettext в vala?

Когда я пытаюсь использовать gettext в vala, я получаю не ошибки или предупреждения от 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?

Как я могу это исправить?


person david4dev    schedule 28.08.2011    source источник


Ответы (3)


Чтобы решить эту проблему, мне пришлось добавить -X -DGETTEXT_PACKAGE="..." к команде valac и добавить const string GETTEXT_PACKAGE = "..."; в начало исходного файла.

Если я не добавлю это в начало моего исходного файла, я по какой-то причине получу много ошибок undeclared (first use in this function) от компилятора C.

Однако я получаю предупреждение от компилятора C за переопределение GETTEXT_PACKAGE.

person david4dev    schedule 28.08.2011
comment
Чтобы избежать дублирования значений GETTEXT_PACKAGE, вы можете использовать [CCode(cname="GETTEXT_PACKAGE")] extern const string GETTEXT_PACKAGE; вместо const string GETTEXT_PACKAGE = "...";. - person antoyo; 03.01.2013

Я думаю, что наиболее распространенным решением является просто передать -DGETTEXT_PACKAGE="..." компилятору C (если вы просто полагаетесь на valac для его вызова, передайте -X -DGETTEXT_PACKAGE="..." valac).

person nemequ    schedule 28.08.2011

Это может помочь: https://bugzilla.gnome.org/show_bug.cgi?id=618931

person lethalman    schedule 28.08.2011