首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用g++-8编译时找不到boost/asio/io_context.hpp

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

Stack Overflow用户
提问于 2019-04-02 17:12:20
回答 2查看 1.4K关注 0票数 0

我在Ubuntu 18.04上,g++-8编译器找不到libboost asio模块。但是,我在安装libboost时使用

代码语言:javascript
复制
sudo apt-get install libboost-all-dev

每当我尝试使用以下头文件进行编译时,都会包含以下头文件

代码语言:javascript
复制
#include <boost/asio/io_context.hpp>

我抛出了一个编译器错误,说找不到头文件。

代码语言:javascript
复制
fatal error: boost/asio/io_context.hpp: No such file or directory #include <boost/asio/io_context.hpp>

我可以使用其他boost头文件进行编译,例如,boost/array.hpp,但不能使用asio。

在libbooost上运行版本检查

代码语言:javascript
复制
dpkg -s libboost-all-dev | grep 'Version'

返回:版本: 1.65.1.0ubuntu1

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

更新1

我发现boost/asio库安装在/usr/lib/boost/asio下。然后,我尝试了以下命令进行编译,仍然得到相同的错误。

代码语言:javascript
复制
g++-8 -I/usr/include/boost/asio -o run foo.cpp
EN

回答 2

Stack Overflow用户

发布于 2019-04-02 18:16:44

感谢有人向我指出,io_context只有在boost 1.66之后才能使用,我现在能够在从官方来源构建boost 1.66之后进行编译。

票数 0
EN

Stack Overflow用户

发布于 2021-12-28 14:44:49

dpkg -l libboost-all-dev识别Ubuntu18.04上的1.65.1版本(“仿生”)。在boost.org网站上,此版本使用boost::asio::io_service.hpp

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

代码语言:javascript
复制
#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;
}

在执行sudo apt install libboost-dev-all g++之后使用g++ -Wall -pedantic -Wextra -g timer1.cpp -lboost_system -o timer1进行编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55470979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档