*免责声明:我是一个试图学习如何使用第三方库的新手。*
我正在考虑使用libcurl为一个项目,我想静态链接到我的项目,使它包含在我的最终可执行文件。
网上的一些文档说:
默认情况下,configure将设置构建文件,以便下面的make file命令将创建libcurl的共享和静态版本。您可以使用
—disable-static
和—disabled-shared
选项进行配置。如果您想使用第三方库的静态版本而不是共享库来构建,那么您需要准备好进行一场艰苦的战斗....
他们讨论的是libcurl使用的库吗?我想我要问的是:即使我构建libcurl和静态链接,libcurl仍然会动态链接到第三方库吗?
是这个意思吗?
问题是,静态库实际上只不过是对象文件的存档。与静态库的链接与与单独的目标文件本身的链接相同。这意味着库的任何第三方依赖也会成为应用程序的依赖项。当你链接你的应用程序时,你必须链接这些第三方库和依赖项。
现在对于libcurl本身,取决于你如何配置和构建libcurl,它可能依赖于一些第三方库,不能静态地链接到你的应用程序。
所以回答你的问题:看情况。
这主要取决于你如何配置它来构建,以及你告诉它使用哪些第三方库,以及这些第三方库是否作为静态库可用(然后是它们的依赖项,等等)。