C++ 错误:‘;io#U上下文’;不是‘;boost::asio’;和错误:‘;稳定定时器’;不是‘;boost::asio’;

C++ 错误:‘;io#U上下文’;不是‘;boost::asio’;和错误:‘;稳定定时器’;不是‘;boost::asio’;,c++,boost-asio,C++,Boost Asio,我被我的第一个asio代码卡住了。我已经从官方网站()上阅读了教程的第一部分 这是密码 #include <iostream> #include <boost/asio.hpp> int main() { boost::asio::io_context io; boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5)); t.wait()

我被我的第一个asio代码卡住了。我已经从官方网站()上阅读了教程的第一部分

这是密码

#include <iostream>
#include <boost/asio.hpp>

    int main()
    {
        boost::asio::io_context io;
        boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
        t.wait();
        std::cout << "First app with asio!" << std::endl;
    
        return 0;
    }
UPD: 我已经安装了boost的最新版本。现在我遇到了这些错误,我该怎么办

/tmp/ccArqi4D.o: In function `boost::asio::detail::posix_event::posix_event()':
trial.cpp:(.text._ZN5boost4asio6detail11posix_eventC2Ev[_ZN5boost4asio6detail11posix_eventC5Ev]+0x4d): undefined reference to `pthread_condattr_setclock'
/tmp/ccArqi4D.o: In function `boost::asio::detail::posix_thread::~posix_thread()':
trial.cpp:(.text._ZN5boost4asio6detail12posix_threadD2Ev[_ZN5boost4asio6detail12posix_threadD5Ev]+0x26): undefined reference to `pthread_detach'
/tmp/ccArqi4D.o: In function `boost::asio::detail::posix_thread::join()':
trial.cpp:(.text._ZN5boost4asio6detail12posix_thread4joinEv[_ZN5boost4asio6detail12posix_thread4joinEv]+0x2b): undefined reference to `pthread_join'
/tmp/ccArqi4D.o: In function `boost::asio::detail::posix_thread::start_thread(boost::asio::detail::posix_thread::func_base*)':
trial.cpp:(.text._ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE[_ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE]+0x3a): undefined reference to `pthread_create'
/tmp/ccArqi4D.o: In function `boost::asio::detail::posix_signal_blocker::posix_signal_blocker()':
trial.cpp:(.text._ZN5boost4asio6detail20posix_signal_blockerC2Ev[_ZN5boost4asio6detail20posix_signal_blockerC5Ev]+0x64): undefined reference to `pthread_sigmask'
/tmp/ccArqi4D.o: In function `boost::asio::detail::posix_signal_blocker::~posix_signal_blocker()':
trial.cpp:(.text._ZN5boost4asio6detail20posix_signal_blockerD2Ev[_ZN5boost4asio6detail20posix_signal_blockerD5Ev]+0x2d): undefined reference to `pthread_sigmask'
collect2: error: ld returned 1 exit status

您可能正在使用旧版本的boost。相当古老:1.66ª的文档已经说明:

时间机器 下面是带有1.65.1的

#include <boost/asio.hpp>
#include <iostream>

int main() {
    boost::asio::io_service io;
    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
    t.wait();
    std::cout << "First app with asio!" << std::endl;
}
回到未来 再次使用1.73.1:

#include <boost/asio.hpp>
#include <iostream>

int main() {
    boost::asio::io_context io;
    boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
    t.wait();
    std::cout << "First app with asio!" << std::endl;
}


1 2017年12月18日

您可能正在使用旧版本的boost。相当古老:1.66ª的文档已经说明:

时间机器 下面是带有1.65.1的

#include <boost/asio.hpp>
#include <iostream>

int main() {
    boost::asio::io_service io;
    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
    t.wait();
    std::cout << "First app with asio!" << std::endl;
}
回到未来 再次使用1.73.1:

#include <boost/asio.hpp>
#include <iostream>

int main() {
    boost::asio::io_context io;
    boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
    t.wait();
    std::cout << "First app with asio!" << std::endl;
}


1 2017年12月18日

我安装了最新版本的boost。但是我得到了错误(UPD有问题)链接到一个线程库,正如消息可能说的那样(它通常会说“DSO”后面跟一个库名。但是对于线程,你可以使用内置的编译器标志“-threads”,这将做正确的事情。我把hte标志“-pthread”但是为什么我要这么做呢?这正常吗?它每次都能正常工作吗?@Egor是的,这不是魔法。在计算中没有奇迹。对于一般的答案,请看,特别是。注意标记:)我衷心建议理解编译模型,因为这些是最令人沮丧的问题,你总是这样。你越早掌握它们越好。我安装了最新版本的boost。但是我得到了错误(UPD有问题)链接到一个线程库,正如消息可能说的那样(它通常会说“DSO”后面跟一个库名。但是对于线程,你可以使用内置的编译器标志“-threads”,这将做正确的事情。我把hte标志“-pthread”但是为什么我要这么做呢?这正常吗?它每次都能正常工作吗?@Egor是的,这不是魔法。在计算中没有奇迹。对于一般的答案,请看,特别是。注意标记:)我衷心建议理解编译模型,因为这些是最令人沮丧的问题,你总是这样。你越早抓住他们,就越好。
First app with asio!