【发布时间】:2016-09-26 11:50:16
【问题描述】:
我需要包含什么库才能使用 Bluez gdbus.h 函数?对于gdbus.h 函数,我收到很多undefined reference 错误,所以我显然缺少一个库。
*有没有办法(在终端或其他方式)我可以找出头文件使用的库?例如;我可以使用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”的引用
我错过了什么库?
【问题讨论】:
-
那些带有
gio-2.0的pkg-config命令的输出是什么? -
@ChronoKitsune 如果我自己使用
gio-2.0,我会收到编译错误fatal error: gdbus/gdbus.h: No such file or directory -
您是如何安装 BlueZ 的? GDBus 不是来自 DBus,它是由 BlueZ 开发人员 IIRC 编写的文件,用于提供帮助器/包装器功能。在标题中你可以清楚地看到它依赖于 glib.h 和 dbus/dbus.h。 glib 来自 GIO iirc。 Gdbus.h 位于 BlueZ 的源代码中。不在包中的任何地方。
-
顺便说一句,这就是你要找的东西。 git.kernel.org/cgit/bluetooth/bluez.git/tree/gdbus