GTK + 3的VAPI问题

时间:2011-06-17 21:57:15

标签: gnome gtk3 vala gnome-3 vapi

我正在尝试在ArchLinux上编译一些Vala,当我尝试包含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 :(得分:0)

什么版本的vala?我担心它必须在你的发行版中搞砸了。你能粘贴/ usr / share /.../gtk + -3.0.deps的内容吗?

还尝试使用valac --verbose,以便您可以看到所有正在加载的vapis。对于每个vapi,查看相关的.deps文件并检查是否存在gdk-2.0。

答案 1 :(得分:0)

无法访问您的源代码或构建环境(假设您不仅仅是直接键入valac命令),很难对此进行故障排除。使用Vala 0.12.1的死简单test.vala,它在我的系统上构建良好。

过去我见过糟糕的Vala环境,因为旧版本的Vala(及其支持文件)潜伏着。我建议完全卸载Vala 0.12.1,然后通过/ usr获取任何残余。一个简单而彻底的方法(虽然耗时)是这样做的:

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

删除任何显然不属于另一个包的内容。 (请注意,有些软件包会安装自己的VAPI,比如libgee。)然后重新安装Vala 0.12.1并查看问题是否仍然存在。