当前位置: 首页 > 知识库问答 >
问题:

用g -8编译时找不到boost/asio/io_context.hpp

晏和风
2023-03-14

我在Ubuntu 18.04上,g -8编译器找不到libboost-asio模块。然而,我用

sudo apt-get install libboost-all-dev

每当我试图用下面的头文件进行编译时

#include <boost/asio/io_context.hpp>

我被抛出一个编译器错误,说头文件无法找到。

fatal error: boost/asio/io_context.hpp: No such file or directory #include <boost/asio/io_context.hpp>

我能够使用其他boost头进行编译,例如boost/array。hpp,但与asio无关。

在libbooost上运行版本检查

dpkg -s libboost-all-dev | grep 'Version'

returns:版本:1.65.1.0ubuntu1

我也找不到任何asio使用倾向的痕迹。我怀疑它没有与apt-get命令一起安装。我应该如何处理这个问题?

我发现boost/asio库安装在/usr/lib/boost/asio下。然后我试着编译下面的命令,仍然得到同样的错误。

g++-8 -I/usr/include/boost/asio -o run foo.cpp

共有2个答案

云京
2023-03-14

dpkg-l libboost-all-dev标识Ubuntu 18.04("仿生")上的1.65.1版本,在boost.org网站中,此版本使用boost1::asio::io_service.hpp

最小工作示例(< code>timer1.cpp):

#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!" << std::endl;
    return 0;
}

在执行< code > sudo apt install lib boost-dev-all g 后,使用< code > g-Wall-pedantic-Wextra-g timer 1 . CPP-lboost _ system-o timer 1 进行编译。

宓季同
2023-03-14

多亏了有人向我指出io_context只能在boops 1.66之后使用,我现在可以在从官方来源构建boops 1.66之后进行编译

 类似资料:
  • 根据http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/overview/cpp2011/futures.html,我们可以将boost::asio与一起使用。但是我找不到任何有关使用的信息,它具有更多的功能,例如。我怎么用?

  • 我在尝试编译使用boost库的项目时遇到问题。 我得到的错误是: 还有更多关于未来的编译错误。水电站。。。。。 我试图重新安装Windows SDK和Visual Studio,但这两种情况都没有帮助。 我想它可能是关于错误的包含路径,所以我检查项目属性中的宏。我发现在'包含目录'中我有$(VC_IncludePath);$(WindowsSDK_IncludePath); 评估为: C:\Pro

  • 我正在尝试使用GCC4.8(通过MacPorts安装)编译boost::program_options示例之一,http://svn.boost.org/svn/boost/trunk/libs/program_options/example/first.cpp。然而,我不断得到错误: boost库通过MacPorts安装,将头文件放在中,将库文件放在中。使用的compile命令是: 使用G++4

  • 我正在尝试用Boost::ASIO实现NAT打孔。根据我的理解,NAT穿孔器的工作原理是这样的(UDP/TCP): 客户端A绑定到端口并连接到服务器S,客户端B执行相同操作。 当S同时接收到请求和匹配时,它将A的ip和端口发送给B,B发送给A。 a和B接收对方的ip和端口,现在它们从同一端口向对方发送消息并形成连接(因为它们正在等待回复?) 如果没有成功的或,我似乎无法运行任何。当然,当目标端口没

  • 问题内容: 我正在尝试使用Ant将Web应用程序打包到war文件中。 构建时,出现以下错误: 以下是我的build.xml 如何编译没有主类的类文件? 如何设置课程路径? 作为参考,我正在使用Eclipse。 问题答案: 除了需要在JDK的/ lib目录中的tools.jar的javac任务以外,所有您的蚂蚁工具都可以正常工作,在这种情况下,JRE是不够的。因此,来自ant的提示是:“无法找到ja