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 )