什么是gdbus库名称? 技术找到它?

使用Bluez gdbus.h函数需要包含哪些库? 我收到很多gdbus.h函数的undefined reference错误,所以我显然错过了一个库。

*有没有办法(在终端或其他方面)我可以找出头文件使用的库? 例如; 我可以使用locate 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’的未定义引用

我错过了什么图书馆?

gdbus函数是gio库的一部分,因此gio-2.0软件包就是你想要的。

gdbus/gdbus.h的原因是它不存在。 我甚至没有提供gdbus.h的软件包, gdbus.h gdbus/gdbus.h 。 要包含的正确文件是gio/gio.h ,它将包含整个gio库的所有必需标头,包括22 for gdbus。

摆脱dbus-glib-1 ; 它已被弃用(支持gdbus)。 如果你的代码使用gdbus,那么它也不太可能需要dbus-glib。

gbdus.h位于BlueZ用户空间源代码中,为了使用,应该下载并编译。

http://git.kernel.org/cgit/bluetooth/bluez.git/tree/gdbus

上面的链接指向您在此用户空间包的源中查找的文件夹。 头文件也在那里。 文件结构对应于您应下载的用户空间源代码的结构。 从那里你可以包括你缺少的文件。