CodeBlocks + Boost.asio in Windows



  • Tach,

    ich hab mal wieder ein kleines Problem. Ich schaff es nicht Asio zum laufen zu bekommen. Ich weiß, dass es mit Winsock zusammenhängt... aber hab keine Ahnung was ich da in Code Blocks einstellen muss

    #include <iostream>
    #include <boost/asio.hpp>
    #include <boost/date_time/posix_time/posix_time.hpp>
    
    int main()
    {
      boost::asio::io_service io;
    
      boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
      t.wait();
    
      std::cout << "Hello, world!\n";
    
      return 0;
    }
    
    -------------- Build: Debug in BoostTest ---------------
    
    Compiling: main.cpp
    In file included from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/date_time/microsec_time_clock.hpp:23,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/date_time/posix_time/posix_time_types.hpp:11,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio/detail/select_reactor.hpp:25,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio/impl/io_service.ipp:27,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio/io_service.hpp:550,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio/basic_io_object.hpp:20,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio/basic_socket.hpp:24,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio/basic_datagram_socket.hpp:25,
                     from C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/asio.hpp:20,
                     from C:\Users\Steffen\Documents\Proggen\Code  Blocks\BoostTest\main.cpp:12:
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/date_time/filetime_functions.hpp: In function `uint64_t boost::date_time::winapi::file_time_to_microseconds(const FileTimeT&)':
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/date_time/filetime_functions.hpp:101: warning: left shift count >= width of type
    Linking console executable: bin\Debug\BoostTest.exe
    obj\Debug\main.o: In function `ZNK5boost6system14error_category10equivalentEiRKNS0_15error_conditionE':
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/system/error_code.hpp:(.text$_ZN5boost4asio6detail12winsock_initILi2ELi0EE7do_initC1Ev[boost::asio::detail::winsock_init<2, 0>::do_init::do_init()]+0x1f): undefined reference to `WSAStartup@8'
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/system/error_code.hpp:(.text$_ZN5boost4asio6detail10socket_ops6selectEiP6fd_setS4_S4_P7timevalRNS_6system10error_codeE[boost::asio::detail::socket_ops::select(int, fd_set*, fd_set*, fd_set*, timeval*, boost::system::error_code&)]+0xe4): undefined reference to `select@20'
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/system/error_code.hpp:(.text$_ZN5boost4asio6detail10socket_ops13error_wrapperIiEET_S4_RNS_6system10error_codeE[int boost::asio::detail::socket_ops::error_wrapper<int>(int, boost::system::error_code&)]+0x13): undefined reference to `WSAGetLastError@0'
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/system/error_code.hpp:(.text$_ZN5boost4asio6detail10socket_ops11clear_errorERNS_6system10error_codeE[boost::asio::detail::socket_ops::clear_error(boost::system::error_code&)]+0xf): undefined reference to `WSASetLastError@4'
    C:/MinGW/boost/boost_1_38_0/include/boost-1_38/boost/system/error_code.hpp:(.text$_ZN5boost4asio6detail12winsock_initILi2ELi0EE7do_initD1Ev[boost::asio::detail::winsock_init<2, 0>::do_init::~do_init()]+0x7): undefined reference to `WSACleanup@0'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 4 seconds)
    5 errors, 1 warnings
    


  • Du mußt die Winsock Library dazu linken.



  • Sowas hab ich mir schon gedacht... weiß jmd wo ich ich die Library finde, ich bräuchte ja die Pfadangabe dazu?



  • Ok habs im MingGw Verzeichniss endlich gefunden... War irgendwie aber nicht im Libordner.

    Thx an alle


Anmelden zum Antworten