>问题
如何将 c++ 库作为源代码与 libcurl 的源代码一起分发,并让库的使用者根据需要处理构建它?我正在使用FastBuild作为构建系统。
上下文
我有一个C++库,我将其作为源代码分发,并让客户端处理构建它以及他们的代码。
存储库还包括依赖项的源代码 tinyxml,它与库本身一起构建,因此对客户端完全透明。
到目前为止,它运行良好,但显然不能很好地扩展更复杂的依赖项,例如 libcurl。
我考虑过捆绑libcurl源代码的替代方案
- 有预编译的 libcurl 库。但我不知道消费者将使用哪些平台/标志
- 在构建计算机上安装 libcurl。它需要为消费者提供额外的设置步骤,而不仅仅是提取代码并使用
编辑 1:使用构建系统进行更新
你没有提到你使用的是哪个构建系统.
如果你使用的是cmake
,你可以利用ExternalProject_Add
来下载/构建/安装依赖库。
请参阅示例: https://cmake.org/cmake/help/git-stage/module/ExternalProject.html#examples
如果我理解正确,您需要任何获取库源代码的客户也能够获得libcurl
和tinyxml
库的相应源代码。 就我个人而言,我会为此目的使用cmake
,正如@brokenfoot已经建议的那样。但是,在您的情况下,似乎FetchContent
就足够了,而且不那么复杂,而不是ExternalProject_Add
:https://cmake.org/cmake/help/latest/module/FetchContent.html