使用Bluez gdbus.h
函数需要包含哪些库?我为undefined reference
函数收到了很多gdbus.h
个错误,所以我显然错过了一个库。
*有没有办法(在终端或其他方面)我可以找出头文件使用的库?例如;我可以使用locate gdbus.h
找到头文件所在的位置。有没有办法找出gdbus.h
所需的库?
我当前的pkg-config
是:
pkg-config --cflags gio-2.0 dbus-glib-1 dbus-1 glib-2.0 gthread-2.0
pkg-config --libs gio-2.0 dbus-glib-1 dbus-1 glib-2.0 gthread-2.0
有了这个,我得到了许多未定义的引用,例如:
agent.c:100:未定义引用' g_dbus_send_reply'
agent.c:104:未定义引用' g_dbus_send_reply'
agent.c:107:未定义引用' g_dbus_send_error'
我缺少哪个图书馆?
答案 0 :(得分:4)
gdbus函数是gio库的一部分,因此gio-2.0
包就是你想要的。
找不到gdbus/gdbus.h
的原因是它不存在。我甚至没有提供gdbus.h
,更不用gdbus/gdbus.h
的套餐。要包含的正确文件是gio/gio.h
,其中包含整个gio库的所有必需标头,包括22 for gdbus。
摆脱dbus-glib-1
;它被弃用了(赞成gdbus)。如果您的代码使用gdbus,那么它也不太可能需要dbus-glib。
答案 1 :(得分:0)
gbdus.h
位于BlueZ用户空间源代码中,为了使用它,应该是downloaded并且可能已编译。
http://git.kernel.org/cgit/bluetooth/bluez.git/tree/gdbus
上面的链接指向您在此用户空间包源中寻找的文件夹。头文件也在那里。文件结构对应于您应下载的用户空间源代码的结构。从那里你可以包括你缺少的文件。