G_DECLARE_FINAL_TYPE () выдает ошибку компилятора - PullRequest
0 голосов
/ 06 июля 2018

Я написал программу на C и GTK3. Я использую Arch Linux, и все работает отлично. Однако я должен использовать свою программу также на довольно старой машине с Ubuntu.

  • ГТК + -3,0 3,10,8
  • GCC 4.8.4

При такой настройке программа не компилируется В заголовочном файле пользовательского GTK-виджета у меня есть:

#ifndef __LAYER_ELEMENT_H__
#define __LAYER_ELEMENT_H__

#include <gtk/gtk.h>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE(LayerElement, layer_element, LAYER, ELEMENT, GtkListBoxRow)

/* Rest of file comes here */

При компиляции выдает сообщение об ошибке: ожидается ')' перед GtkListBoxRow в строке с макросом G_DECLARE_FINAL_TYPE.

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

1 Ответ

0 голосов
/ 07 июля 2018

G_DECLARE_FINAL_TYPE был добавлен в GLib в версии 2.44 (см. документацию ). Если вы хотите скомпилировать старую версию Ubuntu, вам придется либо получить бэкпорт GLib 2.44 (или более поздней версии) для этой версии Ubuntu, и скомпилировать ее; или вам придется изменить код, чтобы не использовать API-интерфейсы GLib, добавленные после версии 2.40.

...