Quel est le nom de la bibliothèque gdbus? Technique pour le trouver?

Quelle bibliothèque dois-je inclure pour utiliser les fonctions Bluez gdbus.h ? Je reçois beaucoup d’erreurs de undefined reference pour les fonctions gdbus.h , donc il me manque évidemment une bibliothèque.

* Existe-t-il un moyen (en terminal ou autre) de savoir quelle bibliothèque est utilisée par un fichier d’en-tête? Par exemple; Je peux trouver où réside un fichier d’en-tête à l’aide de locate gdbus.h . Existe-t-il un moyen de déterminer la bibliothèque gdbus.h ?

Mon pkg-config actuel est:

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

Avec cela, je reçois beaucoup de références indéfinies telles que:

agent.c: 100: référence non définie à ‘g_dbus_send_reply’
agent.c: 104: référence non définie à ‘g_dbus_send_reply’
agent.c: 107: référence non définie à ‘g_dbus_send_error’

Quelle bibliothèque me manque?

Les fonctions de gdbus font partie de la bibliothèque gio, le paquet gio-2.0 est donc ce que vous voulez.

La raison gdbus/gdbus.h laquelle gdbus/gdbus.h n’est pas trouvée est qu’il n’existe pas. Je n’ai même pas un paquet qui fournit un gdbus.h , encore moins gdbus/gdbus.h . Le bon fichier à inclure est gio/gio.h , qui inclura tous les en-têtes nécessaires pour l’ensemble de la bibliothèque gio, y compris le 22 pour gdbus.

Débarrassez-vous de dbus-glib-1 ; il est déconseillé (en faveur de gdbus). Si votre code utilise gdbus, il est très peu probable que cela nécessite également dbus-glib.

gbdus.h se trouve dans le code source de l’espace utilisateur BlueZ, qui, pour pouvoir être utilisé, doit être téléchargé et éventuellement compilé.

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

Le lien ci-dessus pointe vers le dossier que vous recherchez dans la source de ce package d’espace utilisateur. Le fichier d’en-tête est également présent. La structure du fichier correspond à la structure du code source de l’espace utilisateur à télécharger. De là, vous pouvez inclure les fichiers qui vous manquaient.