我需要包含哪些库来使用Bluez gdbus.h函数?我得到了很多关于undefined reference函数的gdbus.h错误,所以我显然错过了一个库。
*是否有一种方法(在终端或其他方面)可以找到一个头文件使用的库?例如,我可以使用locate gdbus.h找到头文件驻留的位置。有什么方法可以找出gdbus.h库需要什么吗?
我目前的pkg-config是:
pkg-config --c阻击吉奥-2.0 dbus-glib-1 dbus-1 glib-2.0 g线程-2.0 pkg-config --libs gio-2.0 dbus-glib-1 dbus-1 glib-2.0 g线程-2.0
通过这种方式,我得到了许多未定义的引用,例如:
agent.c:100:对“g_dbus_send_reply”的未定义引用 agent.c:104:对“g_dbus_send_reply”的未定义引用 agent.c:107:对“g_dbus_send_error”的未定义引用
我错过了哪个图书馆?
发布于 2016-05-28 14:55:31
gdbus函数是gio库的一部分,所以gio-2.0包就是您想要的。
没有找到gdbus/gdbus.h的原因是它不存在。我甚至没有提供gdbus.h的包,更不用说gdbus/gdbus.h了。要包含的正确文件是gio/gio.h,它将包含整个gio库的所有必要的头文件,包括gdbus的22头文件。
摆脱dbus-glib-1;这是不可取的(有利于gdbus)。如果您的代码使用gdbus,那么它也不太可能需要dbus-glib。
发布于 2016-06-03 09:06:33
gbdus.h位于BlueZ用户空间源代码中,为了使用该源代码,应该是下载,可能是编译的。
http://git.kernel.org/cgit/bluetooth/bluez.git/tree/gdbus
上面的链接指向您在这个用户空间包的源中寻找的文件夹。头文件也在那里。文件结构对应于您应该下载的用户空间源代码的结构。从那里你可以包括你丢失的文件。
https://stackoverflow.com/questions/37495335
复制相似问题