gpt4 book ai didi

c++ - 使用 conan 仅安装 boost 的一部分

转载 作者:行者123 更新时间:2023-12-03 07:12:12 25 4
gpt4 key购买 nike

我正在使用 conan 包管理器为项目安装我的依赖项。该项目只需要所有boost库的boost系统,因为我只使用asio和beast。
但是,柯南安装了 boost 的每个部分,这是不可取的。如果我通过 docker 容器在 mac 机器上安装它,则需要一个多小时,并且柯南缓存中的 boost 目录在任何平台上都超过 1 GB,这比所有其他库的总和重十倍。
我只想安装 Boost.system,它通常应该是相当轻量级的。有没有办法做到这一点?这是我的柯南文件的内容:

[requires]
boost/1.73.0 # here! I'd like something like "boost.system/1.73.0"
nlohmann_json/3.9.0
fmt/7.0.2
# other libs...

[generators]
cmake

[options]
nlohmann_json:implicit_conversions=False
我需要 boost 1.73,我将很快切换到需要 1.74。
在我的 CMake 中,我这样做:
target_link_libraries(my_app PRIVATE Boost::system)
一切都在那里工作,但它仍然比应有的重得多,并且它显着减慢了部署速度。

最佳答案

您正在寻找来自 Conan Center Index 的 Boost 1.73.0 ,这是 CCI 中可用的更新版本。但是,这个想法将使用 Components而不是为每个模块创建一个新配方。为什么?我们从 Bincrafters 那里学到了难以维护的东西,一些修复可能会影响所有模块,并且复制需要更多的努力。因此,主要思想将消耗boost/1.73.0 ,就像您拥有的一样,但只需要您需要的东西:target_link_libraries(foobar boost::system)目前有一个Pull Request正在开发中以在 Boost 中提供组件。在 Bincrafters 方面,由于柯南中心指数的优势,模块化 Boost 更新已停止。主要挑战之一是解决 Boost 模块之间的周期性依赖关系,在 Bincrafters 中我们“手动”完成,但现在在 CCI 中我们使用 boost-dep,这会好得多。
因此,如果您没有可用的 boost.system,您现在可以做什么?使用选项,禁用你不想要的东西并从源代码构建。或者,使用 find_library仅列出 Boost.SystemUpdate : 现在,Pull Request已在 CCI 中合并,并且所有 conan boost 版本都可以使用 boost 组件(从 1.69.0 开始)。

关于c++ - 使用 conan 仅安装 boost 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63508786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com