【发布时间】:2017-05-22 17:55:06
【问题描述】:
我正在 ElementaryOS Loki 上编译一些 Vala 代码,它随 GTK 版本 3.18 提供。现在我收到(很多)已弃用的警告,例如:
src/ScreenGrabber.vala:64.55-64.94: warning: Gdk.Display.get_device_manager has been deprecated since 3.20.
src/ScreenGrabber.vala:64.55-64.115: warning: Gdk.DeviceManager.get_client_pointer has been deprecated since 3.20
src/ScreenGrabber.vala:85.19-85.50: warning: Gdk.Screen.get_active_window has been deprecated since 3.22
但是推荐的替代方法应该用于支持“已弃用”的方法在 3.18 中根本不存在,所以我不能使用它们。
如何让 valac 针对给定的 GTK 版本给出正确的警告?如果可能的话,我倾向于完全关闭我宁愿避免的警告。 valac 有一个开关 --target-glib,但没有等效的 "--target-gtk"
--
编辑:
例如如果使用valac -o test test.vala --pkg=gtk+-3.0(在 ElementaryOS Loki 上,使用 GTK 3.18)编译,这个小程序演示了问题
using Gtk;
public class Test {
public Test() {
var manager = Gdk.Display.get_default().get_device_manager();
}
public static int main(string[] args) {
var test = new Test();
return 0;
}
}
【问题讨论】:
-
我不知道是否有关闭此选项的选项。他们试图警告您,无论您使用什么版本,为了将来的兼容性,您都不应该使用某些类。