静态链接libcurl仍然使用动态链接库吗?



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

我正在考虑使用libcurl为一个项目,我想静态链接到我的项目,使它包含在我的最终可执行文件。

网上的一些文档说:

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

如果您想使用第三方库的静态版本而不是共享库来构建,那么您需要准备好进行一场艰苦的战斗....

他们讨论的是libcurl使用的库吗?我想我要问的是:即使我构建libcurl和静态链接,libcurl仍然会动态链接到第三方库吗?

是这个意思吗?

问题是,静态库实际上只不过是对象文件的存档。与静态库的链接与与单独的目标文件本身的链接相同。这意味着库的任何第三方依赖也会成为应用程序的依赖项。当你链接你的应用程序时,你必须链接这些第三方库和依赖项。

现在对于libcurl本身,取决于你如何配置和构建libcurl,它可能依赖于一些第三方库,不能静态地链接到你的应用程序。

所以回答你的问题:看情况。

这主要取决于你如何配置它来构建,以及你告诉它使用哪些第三方库,以及这些第三方库是否作为静态库可用(然后是它们的依赖项,等等)。

最新更新