3

非常に単純なライブラリから.gir ファイルを生成しようとしています。これは基本的に、GLib ドキュメントの GObject の例です。g-ir-scanner を使用すると、次のエラーで失敗します。

$ g-ir-scanner -I./ --library=foo --library-path=./ --pkg=gobject-2.0 --namespace=Foo -o foo-bar.gir foo-bar.c foo-bar.h
g-ir-scanner: compile: gcc -Wall -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-         linux-gnu/glib-2.0/include -I./ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-  2.0/include -c -o /home/roman/Documents/own_gobject/tmp-introspectEx3pzw/Foo-None.o   /home/roman/Documents/own_gobject/tmp-introspectEx3pzw/Foo-None.c
g-ir-scanner: link: gcc -o /home/roman/Documents/own_gobject/tmp-introspectEx3pzw/Foo-None /home/roman/Documents/own_gobject/tmp-introspectEx3pzw/Foo-None.o -L. -Wl,-rpath=. -  lfoo -L./ -Wl,--export-dynamic -pthread -lgio-2.0 -lgmodule-2.0 -lrt -lgobject-2.0 -lglib-2.0
ERROR: can't resolve libraries to shared libraries: foo

何がうまくいかなかったのか、私にはまったくわかりません。何か案は?

4

2 に答える 2

1

これは g-ir-scanner のバグです ( https://bugzilla.gnome.org/show_bug.cgi?id=699442 )。基本的に foo-bar には GObject クラスが含まれておらず、失敗しています。クラスは、foo_blah_get_type() という関数を持つことによって検出されます。

于 2013-05-02T08:00:03.680 に答える
0

--libraryg-ir-scannerの引数には、共有オブジェクトの名前が必要です。たとえば、ビルド環境でlibtoolを使用している場合libfoo.soなどです。libfoo.la

于 2013-02-14T17:32:28.380 に答える