C++ 库需要 LibCurl - 应用程序的用户需要 libcurl 吗?

标签 c++ libcurl

我通常是一名 Java 开发人员,但我现在正在编写一个 C++ 库,他们将使用 LibCurl。而且我对 C++ 世界一无所知!

我正在写的实际上是供其他开发人员使用的库(它是用于访问我们的 API 的客户端代码)。

最终用户是否需要安装 libcurl,或者开发人员能否以某种方式将其包含在 EXE 中或以某种方式打包?

其实也是一样,我可能会在库中使用QT,他们需要安装这个吗?我猜它的工作方式是开发人员当然需要它,但是一旦它被编译为二进制就不需要了吗?不像 java 你一直需要 Jar 文件...

为任何帮助干杯, 艾伦

最佳答案

如果您静态链接 libcurl,则最终用户不需要 libcurl,因为它将在编译时直接链接到可执行文件。

如果您动态链接 libcurl,那么最终用户确实需要在他们的系统上安装 libcurl 并作为共享对象库使用。

但是,您处于不同的位置。您正在编写供其他开发人员使用的库。因此,您的最终用户实际上并不是真正的最终用户。在这种情况下,提供针对 libcurl 的动态链接“更好”。

如果您静态链接,那么您的库将在其代码中封装 libcurl 库的拷贝。现在想象一下使用您的库的开发人员也在使用其他 10 个库,所有这些库都静态链接到 libcurl。该开发人员基本上将在他/她的最终产品中包含 10 个 libcurl 拷贝。这不是很有效,因此在开发库时首选针对依赖项的动态链接。

然而...

如果开发人员使用 10 个需要 libcurl 的不同库,但其中一些库比其他库需要特定的旧/新版本,那么静态链接将很有用。

希望对您有所帮助...

关于C++ 库需要 LibCurl - 应用程序的用户需要 libcurl 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856545/

相关文章:

C++ 树无法插入值

linux - 是否有可能在 linux 中从系统库中抑制用户库

android - Libcurl Certificate Pinning 在 iPhone 上工作但在 Android 上不工作

c - 如何取消 libCurl 请求的示例

c++ - 作为模板参数 C++ 给出的类的别名模板

c++ - 对谷歌风格指南的 Sublime Text 支持

c++ - 在 C++ 中解析 HTTP header

c - 构建交叉编译器 : Intel Xeon E5649 >>> ARMv7 with libcURL

c++ - Visual Studio 调试器在调试中无法正确显示 std::string

C++ Vector2D类操作