我正在学习 boost 并想使用 Beast 和 Asio 制作一个 http 服务器,但我不想将整个 boost 库拖到我的项目中。
到目前为止我所做的:将 Boost.Beast 和 Boost.Asio 添加为 github 存储库中的子模块,将它们包含到我的项目中并定义 BOOST_ASIO_STANDALONE。
当然,它不会构建并丢失很多文件。
所以我的问题是:可以做到吗?必须包含 boost 的哪些部分才能使其工作?
我正在学习 boost 并想使用 Beast 和 Asio 制作一个 http 服务器,但我不想将整个 boost 库拖到我的项目中。
到目前为止我所做的:将 Boost.Beast 和 Boost.Asio 添加为 github 存储库中的子模块,将它们包含到我的项目中并定义 BOOST_ASIO_STANDALONE。
当然,它不会构建并丢失很多文件。
所以我的问题是:可以做到吗?必须包含 boost 的哪些部分才能使其工作?
Beast 没有独立模式:你需要提升。与任何 boost 库一样,您可以尝试使用BCP 工具删除子集。
但是,根据任务的不同,您最终会拖入大量依赖项。这里唯一积极的部分是 Beast仅包含标头,因此任何节省实际上都会减少依赖项的大小。
我建议 BCP 很少值得,除非是非常孤立的事情。比如说,如果你想要just
boost::container::flat_map
或justboost::core::string_view
.