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 :

Développement d'un client VRPN


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut Développement d'un client VRPN
    Hello,

    Je suis débutant en C++, mais j'essai de réaliser un client VRPN afin de récupérer un flux d'information envoyé par un logiciel tiers. Ces données ne sont malheureusement récupérable que via la technologie VRPN puisque lorsque le logiciel est en cours d'utilisation, un serveur VRPN est mis en place et seul un client VRPN le permet.

    Pour ceux qui ne connaissent pas cette technologie voici le site officiel : http://www.cs.unc.edu/Research/vrpn/index.html
    Voici le lien de téléchargement des sources de cette "librairie" C++

    J'utilise Visual Studio C++ Express 2010 afin d'ouvrir le fichier vrpn.sln qui est le workspace général, et qui regroupe la librairie VRPN, la librairie Quat (importante semble-t-il) et enfin divers exemples.

    J'ai trouvé un tutoriel vraiment bon dans la foulé qui explique comment utiliser VRPN, c'est à dire créer un serveur et un client, malheureusement mon niveau ne me permet même pas de créer mon propre projet sur Visual Studio qui inclue la librairie VRPN... Voici le lien
    Je crée bien un nouveau projet C++ et je mets le code d'exemple du site, puis j'entre le chemin absolu de la lib dans les propriété du projet -> puis propriété de configuration -> C/C++ -> Général -> Autre répertoire d'include
    Cela me permet de faire sauter l'erreur qui dit que les include ne trouvent pas les bons fichiers, mais ça fait apparaître celle-ci (qui me bloque) : 1>LINK : fatal error LNK1104: impossible d'ouvrir le fichier 'vrpn.lib' (normal puisque ce fameux fichier .lib n'existe pas)

    Auriez-vous une idée de si je dois créer moi même ce fichier lib pour que cela fonctionne ou non, ou encore si vous avez déjà rélisé un petit client VRPN, auriez vous un petit exemple qui reprend vraiment la base de l'inclusion de librairie à me faire partager ?

    Merci d'avance.

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    pour faire simple, il y a 2 étapes quand tu compiles un projet.
    1. la compilation proprement dite, qui consiste à traduire le c++ (compréhensible par l'être humain) en langage machine (compréhensible par la machine)
    2. l'édition de liens (link), qui consiste à effectuer le lien entre du code déjà compilé (les bibliothèques, ou "library" en anglais) et ton propre programme.

    C'est pourquoi il faut spécifier à visual studio où sont les fichiers include (pour la compilation), mais aussi où sont les fichiers compilés de la bibliothèque (pour l'édition de liens).
    Tu as bien fais le 1er, il te reste juste à faire le 2eme: dans les options du projet -> vc++ directories -> library directories. Il faut que tu ajoute le chemin des fichiers .lib.

    Seulement, je viens de regarder rapidement le package, et je n'ai pas l'impression que les .lib sont fournis. Si ce n'est pas le cas, tu devra effectivement compiler la lib toi-même. Mais ce n'est pas compliqué car ils te fournissent les fichiers solution et projet pour visual studio. Une fois compilé, il te suffit de localiser le(s) .lib et d'ajouter le chemin comme précédemment expliqué.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut
    Rappel : Pour ceux qui ne connaissent pas cette technologie voici le site officiel : http://www.cs.unc.edu/Research/vrpn/index.html
    Merci de ta réponse r0d, elle m'a bien permis d'avancer, et effectivement ce qui bloquait c'était le fait que ces librairies n'étaient ni compilées, ni liées à mon projet.

    Néanmoins je reviens avec un autre soucis, et non des moindres, puisque je dois utiliser cette librairie sur Code Blocks cette fois, et si je bloquait sur Visual Studio, c'était pourtant l'IDE pour lequelle la librairie était optimisé.

    Cette fois il me faut compiler mes librairies quat.lib et vrpn.lib via cmake et mingw.
    J'ai déjà effectué cette opération pour la librairie opencv, et si c'était un beau foutoir, la procédure de compilation des librairie s'est effectuée sans accro. En revanche pour vrpn, on voit que ça a été fait rapidement (enfin je crois).

    Pour le moment je n'ai pas reussi à boucler la compilation avec MinGW, et si Cmake termine bien la procédure avec seulement des warnings du type :

    Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR)
    Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
    Could NOT find MPI (missing: MPI_LIBRARY MPI_INCLUDE_PATH)

    .. et me permet d'effectuer la generation. Une fois dans l'invit de commande, lorsqu'il s'agit de taper la commande mingw32-make, puis mingw32-make install, impossible d'aller au bout et de générer mes librairies.

    Voici le genre d'erreurs que j'obtiens :

    [ 6%]Building CXX object CMakeFiles/vrpnserver.dir/vrpn_BaseClass.C.obj
    [ 7%]Building CXX object CMakeFiles/vrpnserver.dir/vrpn_Button.C.obj

    C:\users\xxx\vrpn\vrpn_Button.C: In constructor 'vrpn_Button_Parallel::vrpn_Button_Parallel(const char*, vrpn_Connection*, int, unsigned int)':
    C:\users\xxx\vrpn\vrpn_Button.C:512: error: 'outp' was not declared in this scope
    C:\users\xxx\vrpn\vrpn_Button.C: In member function 'virtual void vrpn_Button_Python::read()':
    C:\users\xxx\vrpn\vrpn_Button.C:587: error: "_inp' was not declared in this scope

    mingw32-make[2]: *** [CMakeFiles/vrpnserver.dir/vrpn_Button.C.obj] Error 1
    mingw32-make[1]: *** [CMakeFiles/vrpnserver.dir/all] Error 2
    mingw32-make:*** [all] Error 2

    Dans l'hypothèse ou vous réussiriez à m'eclairez, et m'aider dans la génération des librairies dont j'ai besoin, je vous remercie par avance.
    Si vous pensez que ce message aurait sa place autre part sur le forum pour optimiser mes chances de réponse, n'hésitez pas à me le faire savoir !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut
    Petit up

    Personne n'aurait une idée s'il vous plait ? Désolé d'être insistant mais c'est réellement bloquant

    Merci d'avance !

  5. #5
    Membre confirmé
    Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    Citation Envoyé par badsims Voir le message
    Petit up

    Personne n'aurait une idée s'il vous plait ? Désolé d'être insistant mais c'est réellement bloquant

    Merci d'avance !
    Bonjour,

    Tu pourrais essayer de réinstaller CB en suivant le tutoriel http://wiki.epfl.ch/infgmel/install : il est assez bien fait et devrait répondre à tous tes problèmes.

    Bon courage

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut
    Bonsoir,

    Tout d'abord merci de ta réponse dasycarpum.
    Concernant mon problème, ce n'est pas vraiment lié à code blocks puisque je ne l'utilise pas encore à proprement parler. Je me sert juste des libs mingw pour utiliser le compilateur gcc sur windows afin de compiler VRPN. (je ne sais pas si je suis vraiment clair)

    En tout cas, j'ai naturellement essayé de télécharger la version la plus récente de Mingw, et je l'ai installé. J'ai changé la variable d'environnement qui pointait sur le dossier bin de l'ancien Mingw (dans program files/codeblocks/mingw) pour la mettre à jour avec la version toute fraiche de mingw a la racine du C:/
    Ca n'a rien changé...

    J'ai donc essayé de récupérer la dernière version de vrpn stocké sur un repository git (pas vraiment une release).
    Cette fois je vais beaucoup plus loin dans la compilation (j'arrive à 61% environ).

    Mais des erreurs surviennent encore.
    Cette fois sous la forme de :
    undefined reference to htons@4
    undefined reference to ntohl@4
    J'ai cru comprendre en faisant un tour sur google que c'était du à un manque de librairie (elles commencent à me courir ces libs...). Comme la lib "ws2_32" par exemple.
    Jusque là je comprends... Seulement ce qui me bloque c'est que pour rappel, pour le moment j'essai juste de faire un mingw32-make dans l'invite de commande, alors je ne gère pas vraiment les liaisons à différentes librairies comme ceci.
    Savez-vous comment je pourrai m'en sortir ? J'installe ces librairies et je mets leur chemin en variable d'environnement ?
    Peut-être existe-t-il une commande plus précise que mingw32-make, qui me permettrait de signifier la presence d'autres lib à linker ou quelque chose dans la genre ?

    Merci d'avance, j'espère avoir été explicite !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut
    Je me permets un petit up...

    JE n'ai pas beaucoup avancé sur mon soucis, mais je peux quand même vous faire tourner la Makelist de VRPN au cas ou ça pourrait aider quelqu'un à m'éclairer :
    Ah oui, et j'aimerais aussi savoir si quelqu'un connaitrait un forum sur lequel les gens sont pas mal sensibilisés à l'utilisation de CMake et sur lequel je pourrais donc avoir plus de chance de me debloquer ?
    C'est vrai qu'on deborde un peu de l'aspect C++ de la chose =/

    Merci d'avance

Discussions similaires

  1. Développer une application client serveur
    Par mysystm dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 09/09/2008, 16h28
  2. développement d'un client léger hybride P2P
    Par Albator5151 dans le forum Développement
    Réponses: 3
    Dernier message: 09/11/2006, 23h21
  3. Développement d'un client OPC
    Par awane dans le forum WinDev
    Réponses: 3
    Dernier message: 05/09/2006, 20h46
  4. Développer une application Clients-Serveur
    Par Sou06 dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2006, 21h36

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