IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

compilation Bluez & Dbus


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut compilation Bluez & Dbus
    Bonjour,

    je voudrais utiliser la librairie BlueZ pour manipuler mon bluetooth. Cette librairie requiert l'installation de Dbus. J'ai installé le tout (dbus, bluez) sans erreurs mais lorsque je fais un : #include <dbus/dbus.h> il m'indique qu'il ne trouve pas le fichier :
    test.c:2:23: error: dbus/dbus.h: Aucun fichier ou répertoire de ce type

    Celà fait longtemps que je n'ai plus développé sous Linux. J'ai ajouté le chemin de la librairie dbus à la variable $PATH mais rien n'y change.

    Il faut compiler avec -lquelquechose ?

    Si vous pouviez m'éclairer ce serait cool.

    BOnne journée

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Ce n'est pour le moment pas un problème de librairie.

    Es-tu sûr que le fichier dbus.h est présent sur ton système, et dans ce cas où est-il ?

    As-tu installé avec des packages (RPM, deb) ? Dans ce cas, il doit y avoir un package dbus-devel en plus du package dbus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    non j'ai décompressé l'archive, ./configure & make & make install

    je vais essayer d'installer les paquets synaptiques correspondant

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Non, ce n'est pas nécessaire d'installer les paquets.
    Le fichier dbus.h devrait être sous /usr/local/include. Où est-il exactement ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    il est sous :

    /usr/local/include/dbus-1.0/dbus

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    OK, tu dois compiler avec -I/usr/local/include/dbus-1.0

    Je viens de regarder les sources de dbus. Il y a un fichier dbus-1.pc normalement installé sous /usr/local/lib/pkgconfig (à vérifier). Ce fichier indique toutes les options de flags à passer à la compilation et au link. Tu dois utiliser ce fichier en conjonction avec pkg-config pour faire bien.

    EDIT:
    Vérifier que dbus-1 est bien listé avec pkg-config --list-all.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gcc -c `pkg-config --cflags dbus-1` file.c
    gcc `pkg-config --libs dbus-1` -o main *.o

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    oui ce fichier est bien présent. par contre je ne sais pas utiliser pkg-config

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Tu devrais trouver pkg-config dans la liste de tes paquetages.
    Tu devras positionner la variable d'environnement PKG_CONFIG_PATH à /usr/local/lib/pkgconfig pour que pkg-config trouve le fichier dbus-1.
    Vérifie que dbus-1 est bien listé.

    cf. mon message précédent pour la suite

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    j'ai bien mis la variable à /usr/local/lib/pkgconfig

    mais quand je compile avec : gcc -c 'pkg-config --cflags dbus-1' test.c

    gcc: pkg-config --cflags dbus-1: Aucun fichier ou répertoire de ce type

    et ouis dbus-1 est bien listé

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    c'est fou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    jojo@jojo-laptop:~/Desktop$ echo $PKG_CONFIG_PATH
    /usr/local/lib/pkgconfig/
     
     
    jojo@jojo-laptop:~/Desktop$ pkg-config --list-all
    ..
    dbus-1                      dbus - Free desktop message bus
    ...
     
     
    jojo@jojo-laptop:~/Desktop$ gcc -c 'pkg-config --cflags dbus-1' test.c
    gcc: pkg-config --cflags dbus-1: Aucun fichier ou répertoire de ce type
    test.c:2:23: error: dbus/dbus.h: Aucun fichier ou répertoire de ce type

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Attention, ce sont des ` et non des '.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gcc -c `pkg-config --cflags dbus-1` file.c
    gcc `pkg-config --libs dbus-1` -o main *.o

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    que tu tape comment ?

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Sur mon clavier (français), c'est à côté du è et en dessous du 7.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    ok j'ai trouvé sur mon clavier apple c'est alt+4. je testerai ça en rentrant des cours.

    edit:
    effectivement ça fonctionne avec `

    merci beaucoup pour ton aide

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    je perd patience...

    voici ce que j'ai dans mon fichier que j'essaie de compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdlib.h>
    #include <dbus/dbus.h>
    #include <dbus/dbus-glib.h>
     
    int main()
    {
    }
    je compile ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -c `pkg-config --cflags dbus-1 bluez` test.c -I/usr/include/dbus-1.0/
    j'ai toujours un tas d'erreurs dont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: glib-object.h: Aucun fichier ou répertoire de ce type
    pour celà je localise ou est glib-object.h et je rajoute -I/usr/include/glib-2.0 à la compilation puis là les erreurs sont trop longues. Il y a notamment des erreurs dans glib.h, gvaluetypes.h, gobject.h etc du types : error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token et d'autres encore

    je crois que je n'arriverais jamais à compiler ce fichier utilisant les librairies Bluez & Dbus

    si vous pouviez m'éclairer ce serait cool

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Même chose, il y a un fichier .pc pour obtenir les flags de compilation de la glib (glib-2.0.pc ?).

    Regarde ce que donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -c `pkg-config --cflags dbus-1 bluez glib-2.0` test.c
    N'hésite pas à vérifier ce que donne la commande pkg-config --cflags dbus-1 bluez glib-2.0. Il y a un fichier bluez.pc alors aussi ?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jojo@jojo-laptop:~/Desktop$ pkg-config --cflags dbus-1
    -I/usr/local/include/dbus-1.0 -I/usr/local/lib/dbus-1.0/include
    or le fichier dbus-glib.h se trouve dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    jojo@jojo-laptop:~/Desktop$ locate dbus-glib.h
    /usr/include/dbus-1.0/dbus/dbus-glib.h
    c'est bizarre c'est pas la même version de dbus ?

    et donc lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -c `pkg-config --cflags dbus-1 bluez glib-2.0` test.c
    il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test.c:3:28: error: dbus/dbus-glib.h: Aucun fichier ou répertoire de ce type
    et lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -c `pkg-config --cflags dbus-1 bluez glib-2.0` -I/usr/include/dbus-1.0/ test.c
    pour qu'il puisse trouver le .h manquant, il me sort plein d'erreurs du type que je t'ai donné précedemment

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Citation Envoyé par innosang Voir le message
    c'est bizarre c'est pas la même version de dbus ?
    Hum effectivement, c'est embêtant. dbus était peut-être déjà présent dans ta distribution dans une version légèrement différente.
    Si tu unsetenv PKG_CONFIG_PATH, pkg-config --list-all ne te donne t'il déjà pas un package dbus ?
    C'est bien le dbus qui fournit un bus de transmission de messages ?

  19. #19
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Hum effectivement, c'est embêtant. dbus était peut-être déjà présent dans ta distribution dans une version légèrement différente.
    Si tu unsetenv PKG_CONFIG_PATH, pkg-config --list-all ne te donne t'il déjà pas un package dbus ?
    C'est bien le dbus qui fournit un bus de transmission de messages ?
    Salut à vous
    bon moi aussi j'ai le meme problem
    je susi sous ubuntu 7.04
    donc le fichier dbus-glib.h se trouve sous /usr/include/dbus1.0/dbus
    sur la mailing liste dbus ils m'ont dit que pour utiliser le binding glib pour dbus je dois ajouter #include <dbus/dbus-glib.h> or ca me genere la memer erreur que toi innosang
    et meme si je force l'include en utilisant #include "/usr/include/dbus1.0/dbus/dbus-glib.h" ca fonctionne pour ce fichier mais le probleme c'est que ce fichier lui aussi il appel d'autres fichiers et aini d suite...
    je pense qu'on doit modifier quelque varibale ou le gcc!!!

  20. #20
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Ok, je n'avais pas prêté attention à la glib.

    innosang, tu dois remplacer dbus-1 par dbus-glib-1. Vérifie que la glib est bien installé. A priori, si tu as le fichier dbus-glib.h, c'est que le paquet dbus-glib est installé ; il dépend lui-même du paquet dbus. Il n'était donc pas nécessaire que tu compiles dbus, ça peut même poser problème avec le paquet dbus déjà installé.

    MetallicaMan, tu dois indiquer où se trouve les headers de la glib. Voici ce que m'indique pkg-config pour dbus-glib-1 (à adapter)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -I/usr/local/include/dbus-1.0 -I/usr/local/include//dbus-1.0 -I/usr/local/lib/dbus-1.0/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include
    Je te conseille d'utiliser pkg-config, comme indiquer plus haut, pour ne pas avoir à chercher les flags de compilation.

    La compilation de
    #include <dbus/dbus-glib.h>

    int main () {
    return 0;
    }
    ne pose pas de problème chez moi.

    je pense qu'on doit modifier quelque varibale ou le gcc!!!
    le gcc bien sûr...

Discussions similaires

  1. [DEV] Problème compilation BlueZ sous Mac OS
    Par innosang dans le forum Apple
    Réponses: 12
    Dernier message: 03/11/2007, 01h58
  2. Réponses: 1
    Dernier message: 27/05/2002, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo