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 :

[protobuf] Problème d'intégration de cette librairie dans mon projet


Sujet :

C++

  1. #1
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut [protobuf] Problème d'intégration de cette librairie dans mon projet
    Bonjour tout le monde,

    J'ai décidé d'utiliser protobuf (Google Protocol Buffers API) parce que ça a l'air vraiment intéressant et bien documenté, je connais presque toute la partie théorique (j'ai passé presque 4 jours dessus), mais je commence à regretter ce choix...

    Pour commencer voici mes outils :
    • Mon langage d'implémentation : C++
    • Système d'exploitation : Windows 7 (désolé je ne suis pas sous Linux)
    • IDE : Qt Creator (Community) avec MinGW intégré.
    • protobuf : la version stable release 2.6.1



    Mes étapes :
    1. J'ai suivi le tutoriel de Google ici : https://developers.google.com/protoc...otocol-buffers
    2. J'ai téléchargé protoc pour Windows et le code source ici : https://developers.google.com/protoc...docs/downloads
    3. J'ai généré mon .proto avec protoc et obtenu mon "fichier.pb.h" et "fichier.pb.cc"
    4. J'ai intégré ces deux fichier dans mon projet Qt.
    5. J'ai essayé de compiler mon projet... et c'est là que les problèmes commencent !



    Mon problème :
    J'ai des gros problèmes de dépendances parce qu'à chaque fois que je souhaite compiler il y a un fichier qui manque !


    D'abord il y a un dépendance qui manque dans le "fichier.pb.h"
    => #include <google/protobuf/stubs/common.h>

    Le tutoriel de Google ne fait pas mention de ces problèmes de dépendance... mais j'ai déjà vu ce fichier quelque part dans le code source téléchargé !
    J'ai donc dézippé le code source du .tar.gz et intégré "/google/protobuf/" dans mon projet Qt...
    J'ai réalisé que le fichier common.h n'était que le commencement ! Parce que maintenant ça me demande d'autre dépendances comment "gtest.h" ou "config.h" je vais devenir fou !


    S'il vous plait aidez-moi, cela fait plusieurs jours que je suis bloqué avec ce problème de dépendance et j'ai l'impression d'avoir appris cet API pour rien
    Connaissez vous un moyen standard pour résoudre ce problème d'intégration sous Windows ?

    Merci pour votre aide
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Question 1: Tu vas faire de la communication inter-langage? (Une appli C++ qui communique avec une Applic C# ou Java)

    Question 2: Quelle est ta chaîne de compilation?

    Question 3: Quels sont les dossiers d'include que tu as, pour protobuf?.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    @dragonjoker59,
    1. Peut-être dans le futur (je pense que tu fais référence à gRPC), mais pour le moment non, je me sers juste pour de la sérialisation.
    2. J'utilise Qt, donc je précise dans le fichier .pro de ce dernier (qui utilise qmake) le chemin de "/google/protobuf" donc tout ce qui est fichiers et dossiers "/compiler", "/io", "/stubs", "/testdata", "/testing" dedans.
    3. Comme cité dans le 2. je pense que j'ai tout mis.

    Merci pour ton aide
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  4. #4
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Puex-tu mettre l'erreur complète que tu obtiens?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    Et bien les premiers erreurs que j'obtiens et qui empêchent la compilation sont du type "No such file or directory" (cf : common.h pour le premier), donc ça me pointe à chaque fois vers un fichier contenant une ligne #include qui manque dans le projet.

    Donc pour régler ce problème j'opte pour la méthode naïve, c'est-à-dire que j'ajoute au fur et à mesure les fichiers qui manquent :
    1. Ajout de protobuf-2.6.1/src/google (pour "/google/protobuf").
    2. Ajout de protobuf-2.6.1/gtest/include/gtest (pour "/gtest").


    Ajout du fichier "config.h" présent dans le dossier suivant (le seul que j'ai trouvé) : protobuf-2.6.1/vsprojects

    Une fois ces problèmes de dépendance "résolu" (perso je ne crois pas appliquer la bonne méthode ), j'obtiens une flopée de warning m'annonçant que j'ai des "unused parameter", des centaines de warning à commencer par celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\mon_repertoire\build-TDBord4-Desktop_Qt_5_5_0_MinGW_32bit-Debug\Makefile.Debug:2993: avertissement : overriding recipe for target 'debug/main.o'
    Puis cette première erreur qui empêche la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    google\protobuf\compiler\cpp\cpp_helpers.cc:75: erreur : return type 'class google::protobuf::hash_set<std::basic_string<char> >' is incomplete
     hash_set<string> MakeKeywordsMap() {
                                      ^
    Merci pour ton aide
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tu n'as probablement pas installé la version "développement" ou "SDK", c'est à dire celle qui contient les .h permettant de compiler.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/04/2011, 13h44
  2. Inclure librairies dans mon projet
    Par Invité dans le forum C++
    Réponses: 2
    Dernier message: 02/03/2009, 12h17
  3. problème de référencer excel ou word dans mon projet
    Par safezahra dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/09/2008, 14h45
  4. comment configurer ajouter mes librairies dans mon projet web ?
    Par Chikh001 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/10/2007, 11h08
  5. importer une librairie dans mon projet
    Par ryoussef19 dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 25/04/2007, 14h04

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