boost asio 无法识别计时器对象
boost asio doesn't recognize timer object
我正在尝试 运行 从 boost documentation timer2
提升示例
这是代码:
#include <iostream>
#include <boost/asio.hpp>
void print(const boost::system::error_code& /*e*/)
{
std::cout << "Hello, world!" << std::endl;
}
int main()
{
boost::asio::io_context io;
boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
t.async_wait(&print);
io.run();
return 0;
}
我收到以下错误:错误:“io_context”不是
member of ‘boost::asio’ boost::asio::io_context io;
^~~~~~~~~~ /home/mosh/Desktop/untitled1/main.cpp:62:16: note: suggested
alternative: ‘connect’ boost::asio::io_context io;
^~~~~~~~~~
connect /home/mosh/Desktop/untitled1/main.cpp:64:16: error: ‘steady_timer’ is not a member of ‘boost::asio’
boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
^~~~~~~~~~~~ /home/mosh/Desktop/untitled1/main.cpp:64:16: note: suggested
alternative: ‘deadline_timer’ boost::asio::steady_timer t(io,
boost::asio::chrono::seconds(5));
^~~~~~~~~~~~
deadline_timer /home/mosh/Desktop/untitled1/main.cpp:65:3: error: ‘t’ was not
declared in this scope t.async_wait(&print); ^
/home/mosh/Desktop/untitled1/main.cpp:65:3: note: suggested
alternative: ‘tm’ t.async_wait(&print); ^ tm
/home/mosh/Desktop/untitled1/main.cpp:67:3: error: ‘io’ was not
declared in this scope io.run(); ^~
因为你有 boost 版本 1.58 你需要根据 relevant version.
更改你的代码
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp> // <- look at this header
void print(const boost::system::error_code& /*e*/)
{
std::cout << "Hello, world!" << std::endl;
}
int main()
{
boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5)); //<- this deffernt
t.async_wait(&print);
io.run();
return 0;
}
此外,不要忘记将 make/CMake 文件中的 link 更改为 boost_system
我正在尝试 运行 从 boost documentation timer2
提升示例这是代码:
#include <iostream>
#include <boost/asio.hpp>
void print(const boost::system::error_code& /*e*/)
{
std::cout << "Hello, world!" << std::endl;
}
int main()
{
boost::asio::io_context io;
boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
t.async_wait(&print);
io.run();
return 0;
}
我收到以下错误:错误:“io_context”不是
member of ‘boost::asio’ boost::asio::io_context io; ^~~~~~~~~~ /home/mosh/Desktop/untitled1/main.cpp:62:16: note: suggested alternative: ‘connect’ boost::asio::io_context io; ^~~~~~~~~~ connect /home/mosh/Desktop/untitled1/main.cpp:64:16: error: ‘steady_timer’ is not a member of ‘boost::asio’
boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5)); ^~~~~~~~~~~~ /home/mosh/Desktop/untitled1/main.cpp:64:16: note: suggested alternative: ‘deadline_timer’ boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5)); ^~~~~~~~~~~~ deadline_timer /home/mosh/Desktop/untitled1/main.cpp:65:3: error: ‘t’ was not declared in this scope t.async_wait(&print); ^ /home/mosh/Desktop/untitled1/main.cpp:65:3: note: suggested alternative: ‘tm’ t.async_wait(&print); ^ tm /home/mosh/Desktop/untitled1/main.cpp:67:3: error: ‘io’ was not declared in this scope io.run(); ^~
因为你有 boost 版本 1.58 你需要根据 relevant version.
更改你的代码#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp> // <- look at this header
void print(const boost::system::error_code& /*e*/)
{
std::cout << "Hello, world!" << std::endl;
}
int main()
{
boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5)); //<- this deffernt
t.async_wait(&print);
io.run();
return 0;
}
此外,不要忘记将 make/CMake 文件中的 link 更改为 boost_system