繁体   English   中英

静态链接的 libcurl 是否仍然使用动态链接的库?

[英]Does a statically linked libcurl still use dynamically linked libraries?

*免责声明:我是一个正在尝试学习如何使用第三方库的新手。 *

我正在考虑将 libcurl 用于一个项目,并且我想将它静态链接到我的项目,以便它包含在我的最终可执行文件中。

一些在线文档说:

默认情况下,configure 将设置构建文件,以便以下 make file 命令将创建 libcurl 的共享版本和 static 版本。 您可以使用—disable-static—disabled-shared选项进行配置来更改它。

如果您想使用 static 版本的第三方库而不是共享库进行构建,则需要为艰苦的战斗做好准备......

他们是在谈论 libcurl 使用的库吗? 我想我要问的是:即使我构建 libcurl 并静态链接,libcurl 仍然会动态链接到 3rd 方库吗?

这是在说什么吗?

问题是,static 库实际上只不过是 object 文件的存档。 与 static 库链接与与单独的 object 文件本身链接相同。 这意味着该库具有的任何 3rd 方依赖项也将成为您的应用程序的依赖项。 当您链接您的应用程序时,您必须链接那些第 3 方库和依赖项。

现在对于 libcurl 本身,根据您配置和构建 libcurl 的方式,它可能依赖于一些无法静态链接到您的应用程序的第三方库。

所以回答你的问题:这取决于。

这主要取决于您如何配置它以进行构建,以及您告诉它使用哪些 3rd 方库,以及这些 3rd 方库是否可用作 static 库(然后是它们的依赖项等等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM