2016-06-13 8 views
1

私はValaで書かれたライブラリを持っています。.vapiファイルを生成するのに常に役に立ちました.のフリー・オペレーションだと思うが、それは肯定的ではない。私が行って、私のconfigure.acファイルにVAPIGEN_CHECKを使用しようとした私のMakefile.am内の関連VAPIGEN_MAKEFILE、今私が取得:Valaライブラリ用のVapiファイルを生成する

error: The type name `GLib.TypeInstance' could not be found 

マイ対応.girファイルが含まれています:

<field name="parent_instance"> 
    <type name="GObject.TypeInstance" c:type="GTypeInstance"/> 
</field> 

ので、エラーが意味をなさないように思われますいずれの.vapiファイルにもGObject.TypeInstanceクラス/構造体が見つかりませんでしたが、GTypeInstanceはGLibヘッダーの1つにあります。

すでに私がValaにすべてを書いているとすれば、私はこのようにしなければなりませんか?これがVapiに存在しない可能性はありますか?

編集:おそらく私が暗示していると思ったGLib.Objectを引き出していないことが原因です。これを防ぐ他の何かを修正しようとしていますが、それが完了したら、実際に問題があるかどうかを言い換えるためにこれを更新します。

答えて

1

あなたは、単に例えば、valac--vapiオプションを使用する必要がありますValaのプログラムからVAPIファイルを生成するには:

valac --vapi my_library_name.vapi my_library.vala

あなたは私はあなたがGIR(GObjectのイントロスペクションのリポジトリを作成していると思う記述しているものから、 )ファイルをvalacとし、次にvapigenを使用してVAPIファイルを作成します。 vapigenはValaの一部であり、Valaのソースコードで管理されていますが、Vala以外のプロジェクトにバインドするためのVAPIファイルを生成するためのツールです。 Vala以外のプロジェクトがGIRファイルを配布すると、バインディングが非常に簡単になります。

例えば、あなたがあなたをチェックする必要があるので、右のpkg-config設定フラグを含めている、あなたはそれを使用してパッケージを与える必要がvapigenを使用する場合:

vapigen --pkg glib-2.0 --pkg gobject-2.0 my_library.gir

を他の可能性は全く結合がないですValaのGTypeInstance用私はすばやく見てきました。何も見つけられません。

+0

'--vapi'を使うと、基本クラスとして明示的に' GLib.Object'を設定するのが最も効果的です。私はちょうど 'vapigen'を使って' .deps'を生成しようとしていました。私はどうにかしてVapi​​のルールを取り除きました。 – geoffjay

関連する問題