g-ir-scanner无法生成gir-file

时间:2013-01-28 13:29:17

标签: gobject-introspection

我正在尝试从一个非常简单的库中生成 .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

我真的不知道出了什么问题。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这是g-ir-scanner(https://bugzilla.gnome.org/show_bug.cgi?id=699442)中的错误。基本上foo-bar不包含任何GObject类,但它失败了。通过使用名为foo_blah_get_type()的函数来检测类。

答案 1 :(得分:0)

g-ir-scanner的--library参数需要共享对象的名称 - 例如,libfoo.solibfoo.la如果您在构建环境中使用libtool。