2

ArchLinux で Vala をコンパイルしようとしていますが、パッケージをインクルードしようとすると、gtk+-3.0GDK と 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

4

2 に答える 2

0

ソース コードやビルド環境にアクセスできないと (コマンドを直接入力するだけではないと仮定してvalac)、これをトラブルシューティングするのは困難です。非常にシンプルな test.vala を Vala 0.12.1 で使用すると、私のシステムでは問題なくビルドできます。

過去に、古いバージョンの Vala (およびそのサポート ファイル) が潜んでいるために、Vala 環境が悪いのを見てきました。Vala 0.12.1 を完全にアンインストールしてから、/usr を調べて残りを見つけることをお勧めします。簡単で徹底的な方法は (時間はかかりますが) これを行うことです:

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

明らかに別のパッケージの一部ではないものはすべて削除してください。(いくつかのパッケージは、libgee のような独自の VAPI をインストールすることに注意してください。) 次に、Vala 0.12.1 を再インストールし、問題が解決しないかどうかを確認します。

于 2011-06-27T04:23:20.830 に答える
0

ヴァラのバージョンは?あなたのディストリビューションで何かが台無しになっているに違いないのではないかと心配しています。/usr/share/.../gtk+-3.0.deps の内容を貼り付けてもらえますか?

また、valac --verbose を使用して、すべての vapis がロードされていることを確認してください。vapi ごとに、関連する .deps ファイルを調べて、gdk-2.0 が横たわっているかどうかを確認します。

于 2011-06-18T08:14:40.887 に答える