boost / beast / core.hpp: нет такого файла или каталога

Мне нужно написать сервер на C ++, и сегодня я загрузил Boost через sudo apt-get install-f libboost-all-dev, но этот пример кода не компилируется. Пишет ошибку: boost.cpp: 16: 32: фатальная ошибка: boost / beast / core.hpp: нет такого файла или каталога #include ‹boost / beast / core.hpp›

И и / usr / include / boost / no beast папка

Как решить проблему? Я накачивал это много раз

$ grep BOOST_VERSION  /usr/include/boost/version.hpp

#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP
//  BOOST_VERSION % 100 is the patch level
//  BOOST_VERSION / 100 % 1000 is the minor version
//  BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 106501
//  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION


$ grep VERSION /etc/os-release

VERSION="18.04.5 LTS (Bionic Beaver)"
VERSION_ID="18.04"
VERSION_CODENAME=bionic 

http_server_sync.cpp https://www.boost.org/doc/libs/1_75_0/libs/beast/doc/html/beast/examples.html#beast.examples.clients

Если версия старая, то как правильно обновить?

UPD:

Я обновил Ubuntu до 20.4, после того как файлы появились, но тоже были проблемы с линковкой. Удалены предыдущие файлы библиотеки: sudo apt remove libboost-all-dev sudo apt autoremove

потом скачал с официального сайта нормально:

$ wget https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.gz
$ tar xf boost_1_76_0.tar.gz
$ ./bootstrap.sh       
$ ./b2

И после такой компоновки (возможно, неправильной, но связанной!) Пример компиляции:

$ g++ boost.cpp -I/home/matroskin/boost_1_76_0 -L/home/matroskin//boost_1_76_0/stage/lib -lboost_system -lpthread```

person Captain-Matroskin    schedule 27.04.2021    source источник
comment
Я думаю, что ваша версия ускорения слишком низкая, просто проверьте ее с помощью этой команды grep BOOST_VERSION /usr/include/boost/version.hpp   -  person prehistoricpenguin    schedule 27.04.2021
comment
Какая у вас версия Linux? Проверьте это с помощью grep VERSION /etc/os-release   -  person prehistoricpenguin    schedule 27.04.2021
comment
Вы проверяли, что ваши проекты включают каталоги и каталоги библиотек?   -  person east1000    schedule 27.04.2021
comment
Обновить новую информацию   -  person Captain-Matroskin    schedule 27.04.2021


Ответы (1)


Согласно документации,

https://www.boost.org/doc/libs/1_66_0/

Beast
Portable HTTP, WebSocket и сетевые операции с использованием только C ++ 11 и Boost.Asio
...
Первая версия 1.66.0

вам необходимо обновиться как минимум до 1.66.0

Изменить
На практике у вас есть несколько вариантов

  1. Обновите выпуск Ubuntu. Да, некоторые люди считают это немного рискованным и может привести к необходимости переустановки системы.
  2. Удалите пакет boost и вместо этого установите boost вручную из источников. Это несложно и хорошо задокументировано.

Я не использую ubuntu и больше ничем не могу вам помочь. Я помню, как однажды мне пришлось установить более новую версию boost, чем та, которая была у меня в моей системе пакетов, и это не было большой проблемой. Кроме того, beast - это библиотека только для заголовков, поэтому вам даже не придется компилировать (эта часть boost, но beast может зависеть от других частей библиотеки, которые должны быть скомпилированы).

Повторюсь: установка boost из исходников не так уж и сложна и, безусловно, безопасна для вашей системы.

person zkoza    schedule 27.04.2021
comment
подскажите пожалуйста, как это правильно сделать? - person Captain-Matroskin; 27.04.2021
comment
Я добавил раздел РЕДАКТИРОВАНИЕ - person zkoza; 27.04.2021