2016-06-05 22 views
1

Ich habe versucht, libfriends (source) gegen Valac (.28) und libgee (1.0) zu kompilieren. Ich habe diese speziell gegen Ubuntu-16.04 Stack zusammengestellt.Kann nicht von `GLib.TypeClass 'zu` GLib.ObjectClass' konvertieren

Aber ich bin immer folgende Fehler

entry.vala:397.38-397.38: warning: if-statement without body if (_selected != value); ^ entry.vala:172.52-172.86: error: Argument 1: Cannot convert from `GLib.TypeClass' to `GLib.ObjectClass' binding_set = Gtk.BindingSet.by_class (typeof (InputTextView).class_ref());

ich wirklich nichts falsch mit dem Code finden. Irgendeine Idee?

Das gesamte buildlog ist hier: https://launchpadlibrarian.net/263631082/buildlog_ubuntu-xenial-i386.libfriends_0.1.2+14.10.20140709+201606051415~ubuntu16.04.1_BUILDING.txt.gz

Antwort

1

ich kompiliert gerade überprüft und es mit valac-0.18, aber nicht kompiliert mit valac-0.28.

Also muss zwischen den Versionen valac eine Änderung stattgefunden haben, die in diesem Fall strengere Typprüfungen vornimmt.

GLib.TypeClass (wirklich GTypeClass in C) is the parent class von GLib.ObjectClass (wirklich GObjectClass in C).

Also der Compiler ist richtig, dies ohne eine Besetzung zu erlauben. Ich weiß nicht, ob die Besetzung in dieser Situation richtig ist, aber es macht den Code Kompilierung:

binding_set = Gtk.BindingSet.by_class ((ObjectClass) typeof (InputTextView).class_ref()) 

Siehe auch valadoc für GObjectClass wo eine ähnliche Typumwandlung im Beispielcode durchgeführt wird:

http://valadoc.org/#!api=gobject-2.0/GLib.ObjectClass

+0

Es scheint, dass Sie Recht haben. Es kompiliert gegen vala-0.18. Und dein geänderter Code funktioniert auch. Vielen Dank. –