簡體   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