我在Ubuntu 18.04上,g++-8编译器找不到libboost asio模块。但是,我在安装libboost时使用
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'返回:版本: 1.65.1.0ubuntu1
我也找不到任何使用aptitude的asio的痕迹。我怀疑它没有和apt-get命令一起安装。我应该如何处理这个问题?
更新1
我发现boost/asio库安装在/usr/lib/boost/asio下。然后,我尝试了以下命令进行编译,仍然得到相同的错误。
g++-8 -I/usr/include/boost/asio -o run foo.cpp发布于 2019-04-02 18:16:44
感谢有人向我指出,io_context只有在boost 1.66之后才能使用,我现在能够在从官方来源构建boost 1.66之后进行编译。
发布于 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):
#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进行编译。
https://stackoverflow.com/questions/55470979
复制相似问题