什么是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
上面的链接指向您在此用户空间包的源中查找的文件夹。 头文件也在那里。 文件结构对应于您应下载的用户空间源代码的结构。 从那里你可以包括你缺少的文件。