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

时间:2016-05-28 04:57:37

标签: c linux glib

使用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'

我缺少哪个图书馆?

2 个答案:

答案 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

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