我试图编译libgee (来源)针对valac (.28)和libgee (1.0)。我特别针对Ubuntu16.04栈编译了这些代码。
但我还是会犯错误
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 ());
我没发现密码有什么问题。知道吗?
整个构建日志都在这里:BUILDING.txt.gz
发布于 2016-06-05 18:25:56
我刚刚检查了它,它用valac-0.18编译,但没有用valac-0.28编译。
因此,在这种情况下,那些执行更严格类型检查的valac版本之间一定发生了变化。
GLib.TypeClass (真正的GTypeClass in C) 是父类。 of GLib.ObjectClass (在C中真正的GObjectClass )。
因此,编译器在没有强制转换的情况下不允许这样做是正确的。我不知道在这种情况下强制转换是否正确,但它使代码编译:
binding_set = Gtk.BindingSet.by_class ((ObjectClass) typeof (InputTextView).class_ref ())还请参见valadoc中的GObjectClass,其中在示例代码中进行了类似的类型广播:
http://valadoc.org/#!api=gobject-2.0/GLib.ObjectClass
https://stackoverflow.com/questions/37643150
复制相似问题