【问题标题】:Bundle and build libcurl along with custom lib捆绑并构建 libcurl 以及自定义库
【发布时间】:2021-11-15 06:16:03
【问题描述】:

问题

如何将 c++ 库作为源代码与 libcurl 的源代码一起分发,并让库的使用者根据需要处理构建它?我使用 FastBuild 作为构建系统。

上下文

我有一个 C++ 库,我将其作为源代码分发,并让客户将其与他们的代码一起构建。

repo 还包括依赖项的源代码 tinyxml,它与库本身一起构建,因此对客户端完全透明。

到目前为止它运行良好,但显然不能很好地扩展更复杂的依赖项,例如 libcurl。

我认为可以替代捆绑 libcurl 的源代码

  • 具有预编译的 libcurl 库。但我不知道消费者将使用哪些平台/标志
  • 在构建机器上安装了 libcurl。消费者需要额外的设置步骤,而不仅仅是拉代码和使用

编辑 1:使用构建系统更新

【问题讨论】:

    标签: c++ curl libcurl


    【解决方案1】:

    如果我对您的理解正确,您需要任何获得您的库源代码的客户也能够获得libcurltinyxml 库的相应源代码。 正如@brokenfoot 已经建议的那样,我个人会为此目的使用cmake。但不是ExternalProject_Add,在您的情况下,FetchContent 似乎就足够了,而且不那么复杂:https://cmake.org/cmake/help/latest/module/FetchContent.html

    【讨论】:

    • 我正在使用 FastBuild 作为构建系统。使用 cmake 真的会让事情变得更容易。
    • @andreferreirav2 我尝试使用cmake 为依赖于libcurl 的Mac OS 构建测试库,但似乎curl 项目尚未准备好与cmake FetchContent 一起使用开箱即用的模块。所以我只使用FetchContent 来获取与特定提交相对应的curl 源,然后从cmake 内部调用shell 脚本,使用自动工具构建curl
    【解决方案2】:

    您没有提到您使用的是哪个构建系统。
    如果你使用cmake,你可以使用ExternalProject_Add来下载/构建/安装依赖库。

    查看示例: https://cmake.org/cmake/help/git-stage/module/ExternalProject.html#examples

    【讨论】:

    • 我正在使用 FastBuild 作为构建系统。使用 cmake 真的会让事情变得更容易。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多