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
- Si mon ordinateur est un système 32 bits, il a une adresse 32 bits, non? Mais quand j’imprime une adresse mémoire en C, pourquoi ai-je une adresse <32 bits?
- Afficher une alerte avec des titres de bouton personnalisés sous Windows?
- Comment utiliser la fonction `getch` de c sous Linux?
- Erreur de lien en Java
- Code C, que me manque-t-il pour ce programme d’instruction de contrôle?
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.