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

Boost C++ Discussion :

Impossible de compiler un exemple


Sujet :

Boost C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Par défaut Impossible de compiler un exemple
    Salut
    Depuis ce matin, je teste les exemples fourni dans la documentation du site off de boost et je suis tombé sur un os quand j'ai voulu faire mumuse avec asio.hpp
    Impossible de compiler
    voici le programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    //
    // client.cpp
    // ~~~~~~~~~~
    //
    // Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
    //
    // Distributed under the Boost Software License, Version 1.0. (See accompanying
    // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    //
     
    #include <iostream>
    #include <boost/array.hpp>
    #include <boost/asio.hpp>
     
    using boost::asio::ip::tcp;
     
    int main(int argc, char* argv[])
    {
      try
      {
        if (argc != 2)
        {
          std::cerr << "Usage: client <host>" << std::endl;
          return 1;
        }
     
        boost::asio::io_service io_service;
     
        tcp::resolver resolver(io_service);
        tcp::resolver::query query(argv[1], "daytime");
        tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
        tcp::resolver::iterator end;
     
        tcp::socket socket(io_service);
        boost::system::error_code error = boost::asio::error::host_not_found;
        while (error && endpoint_iterator != end)
        {
          socket.close();
          socket.connect(*endpoint_iterator++, error);
        }
        if (error)
          throw boost::system::system_error(error);
     
        for (;;)
        {
          boost::array<char, 128> buf;
          boost::system::error_code error;
     
          size_t len = socket.read_some(boost::asio::buffer(buf), error);
     
          if (error == boost::asio::error::eof)
            break; // Connection closed cleanly by peer.
          else if (error)
            throw boost::system::system_error(error); // Some other error.
     
          std::cout.write(buf.data(), len);
        }
      }
      catch (std::exception& e)
      {
        std::cerr << e.what() << std::endl;
      }
     
      return 0;
    }
    voici ma ligne pour compiler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -Wall -W -pedantic -ansi -lboost_asio socket.cpp -o socketju
    et voilà les lignes d'erreurs que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    socket.cpp:15: erreur: ‘boost::asio’ has not been declared
    socket.cpp: In function ‘int main(int, char**)’:
    socket.cpp:27: erreur: ‘boost::asio’ has not been declared
    socket.cpp:27: erreur: expected `;' before ‘io_service’
    socket.cpp:29: erreur: ‘tcp’ has not been declared
    socket.cpp:29: erreur: expected `;' before ‘resolver’
    socket.cpp:30: erreur: ‘tcp’ has not been declared
    socket.cpp:30: erreur: expected `;' before ‘query’
    socket.cpp:31: erreur: ‘tcp’ has not been declared
    socket.cpp:31: erreur: expected `;' before ‘endpoint_iterator’
    socket.cpp:32: erreur: ‘tcp’ has not been declared
    socket.cpp:32: erreur: expected `;' before ‘end’
    socket.cpp:34: erreur: ‘tcp’ has not been declared
    socket.cpp:34: erreur: expected `;' before ‘socket’
    socket.cpp:35: erreur: ‘boost::system’ has not been declared
    socket.cpp:35: erreur: expected `;' before ‘error’
    socket.cpp:36: erreur: ‘error’ was not declared in this scope
    socket.cpp:36: erreur: ‘endpoint_iterator’ was not declared in this scope
    socket.cpp:36: erreur: ‘end’ was not declared in this scope
    socket.cpp:38: erreur: request for member ‘close’ in ‘socket’, which is of non-class type ‘int ()(int, int, int)throw ()’
    socket.cpp:39: erreur: request for member ‘connect’ in ‘socket’, which is of non-class type ‘int ()(int, int, int)throw ()’
    socket.cpp:41: erreur: ‘error’ was not declared in this scope
    socket.cpp:42: erreur: ‘boost::system’ has not been declared
    socket.cpp:47: erreur: ‘boost::system’ has not been declared
    socket.cpp:47: erreur: expected `;' before ‘error’
    socket.cpp:49: erreur: request for member ‘read_some’ in ‘socket’, which is of non-class type ‘int ()(int, int, int)throw ()’
    socket.cpp:49: erreur: ‘boost::asio’ has not been declared
    socket.cpp:49: erreur: ‘error’ was not declared in this scope
    socket.cpp:51: erreur: ‘boost::asio’ has not been declared
    socket.cpp:54: erreur: ‘boost::system’ has not been declared
    socket.cpp: At global scope:
    socket.cpp:17: attention : unused parameter ‘argv’

    J'ai cherché toute l'am et ... rien, je n'ai pas trouvé le soucis
    Si quelqu'un a une idée, je suis preneur (je suis sous linux au fait )

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Par défaut
    Je voudrais rajouter que j'ai installé asio et qu'il se trouve dans /usr/include/ (asio/ et asio.hpp) et que j'ai fait un lien avec ln -s de asio/ et asio.hpp dans /usr/include/boost.
    Peut-être que l'erreur vient de là ?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Tu as installé la version 'boost' de asio (il y a une version boost et une non-boost) ?
    Pourquoi faire un lien plutôt que tout coller dans le répertoire boost comme suggéré dans la procédure d'installation ?

    edit : pourquoi pas pour le lien, c'est peut-être aussi bien en fait

    MAT.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Par défaut
    Citation Envoyé par Mat007 Voir le message
    Salut,

    Tu as installé la version 'boost' de asio (il y a une version boost et une non-boost) ?
    Pourquoi faire un lien plutôt que tout coller dans le répertoire boost comme suggéré dans la procédure d'installation ?

    edit : pourquoi pas pour le lien, c'est peut-être aussi bien en fait

    MAT.
    Sur la fedora asio n'existe pas par défaut. Il a fallu que je l'installe mais ce n'est pas au bon endroit. D'autres parts, je n'ai pas bien compris pk asio n'était pas inclu de base dans bosst-devel. Je leur ai posé la question mais visiblement, eux même ne le savent pas

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Asio n'existe dans aucune distribution par défaut, la bibliothèque est très récente et n'est pas encore inclue.

    Toujours est-il qu'il y a deux versions de disponibles : une boostified et une non. Tu as bien utilisée la première ?

    MAT.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Par défaut
    Citation Envoyé par Mat007 Voir le message
    Asio n'existe dans aucune distribution par défaut, la bibliothèque est très récente et n'est pas encore inclue.

    Toujours est-il qu'il y a deux versions de disponibles : une boostified et une non. Tu as bien utilisée la première ?

    MAT.
    J'ai l'impression que non
    Bon je pars en vacances donc je regarderai en revenant cependant si vous avez un lien sur comment installer la version qui va avec boost je suis preneur


  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Sur la page d'acceuil dans "Using asio", c'est très simple donc.
    Et donc dans download il faut choisir par exemple boost_asio_0_3_9.tar.bz2 et non asio_0_3_9.tar.bz2.

    MAT.

Discussions similaires

  1. Impossible de compiler les exemples d'OpenCV 2.4.1
    Par thibaut_marclor dans le forum OpenCV
    Réponses: 5
    Dernier message: 15/06/2012, 15h27
  2. Réponses: 5
    Dernier message: 22/08/2007, 22h00
  3. DirectX impossible de compiler un exemple.
    Par OpenGG dans le forum DirectX
    Réponses: 3
    Dernier message: 23/03/2006, 00h18
  4. [Dev-cpp] Impossible de compiler le projet !
    Par Franck.H dans le forum Dev-C++
    Réponses: 5
    Dernier message: 18/10/2005, 11h55
  5. [JOnAS][JOPE] impossible de compiler un bean
    Par Raylemon dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/04/2005, 16h48

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