VAPI проблемы с GTK + 3 - PullRequest
2 голосов
/ 18 июня 2011

Я пытаюсь скомпилировать Vala на ArchLinux, и когда я пытаюсь включить пакет gtk+-3.0, кажется, что GDK и GTK + 2.0 также включены;valac --pkg gtk+-3.0 test.vala дает следующие ошибки:

gdk-2.0.vapi:8.3-8.28: error: `Gdk.Selection' already contains a definition for `convert'
    public static void convert (Gdk.Window requestor, Gdk.Atom selection,     Gdk.Atom target, uint32 time_);
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
gdk-3.0.vapi:8.3-8.28: note: previous definition of `convert' was here
    public static void convert (Gdk.Window requestor, Gdk.Atom selection, Gdk.Atom target, uint32 time_);
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
gdk-2.0.vapi:10.3-10.44: error: `Gdk.Selection' already contains a definition for `owner_get'
    public static unowned Gdk.Window owner_get (Gdk.Atom selection);
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gdk-3.0.vapi:10.3-10.44: note: previous definition of `owner_get' was here
    public static unowned Gdk.Window owner_get (Gdk.Atom selection);
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--snip--
Compilation failed: 942 error(s), 0 warning(s)

Есть ли способ указать, не включать gtk+-2.0 или заставить valac игнорировать эти ошибки?

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Не имея доступа к исходному коду или среде сборки (при условии, что вы не просто набираете команду valac напрямую), трудно решить эту проблему. Используя очень простой test.vala с Vala 0.12.1, он прекрасно работает на моей системе.

В прошлом я видел плохие среды Vala из-за старых версий Vala (и файлов поддержки), скрывающихся вокруг. Я рекомендую полностью удалить Vala 0.12.1, а затем выполнить / usr для любых остатков. Простой и тщательный способ (хотя и трудоемкий) заключается в следующем:

$ find /usr -name "*vala*"
$ find /usr -name "*.vapi"

Удалите все, что явно не является частью другого пакета. (Обратите внимание, что некоторые пакеты устанавливают свои собственные VAPI, например libgee.) Затем переустановите Vala 0.12.1 и посмотрите, сохраняется ли проблема.

0 голосов
/ 18 июня 2011

Какая версия Вала?Боюсь, это должно быть что-то испорчено в вашем распространенииМожете ли вы вставить содержимое /usr/share/.../gtk+-3.0.deps?

Также попробуйте использовать valac --verbose, чтобы увидеть все загружаемые vapis.Для каждого vapi посмотрите соответствующий файл .deps и проверьте, есть ли где-нибудь gdk-2.0.

...