關於VS下動態庫和靜態庫

2021-08-14 17:09:13 字數 851 閱讀 9151

首先:對於我這種懶(智商)人(不夠用)來說,凡是不能看一眼就會用的東西,都是不夠人性化的,所以,為智商充值,mark一下。

靜態庫:(暫不能科學上網,給出某科描述)

靜態庫是指在我們的應用中,有一些公共**是需要反覆使用,就把這些**編譯為「庫」檔案;在鏈結步驟中,聯結器將從庫檔案取得所需的**,複製到生成的可執行檔案中的這種庫。

動態庫:

動態庫又稱動態鏈結庫英文為dll,是dynamic link library 的縮寫形式,dll是乙個包含可由多個程式同時使用的**和資料的庫,dll不是可執行檔案。動態鏈結提供了一種方法,使程序可以呼叫不屬於其可執行**的函式。函式的可執行**位於乙個 dll 中,該 dll 包含乙個或多個已被編譯、鏈結並與使用它們的程序分開儲存的函式。dll 還有助於共享資料和資源。多個應用程式可同時訪問記憶體中單個dll 副本的內容。dll 是乙個包含可由多個程式同時使用的**和資料的庫。windows下動態庫為.dll字尾,在linux在為.so字尾

兩者區別:

靜態庫在程式的鏈結階段被複製到了程式中,和程式執行的時候沒有關係;程式編譯一般需經預處理、編譯、彙編和鏈結幾個步驟。靜態庫特點是可執行檔案中包含了庫**的乙份完整拷貝;缺點就是被多次使用就會有多份冗餘拷貝。動態庫在鏈結階段沒有被複製到程式中,而是程式在執行時由系統動態載入到記憶體中供程式呼叫。使用動態庫的優點是系統只需載入一次動態庫,不同的程式可以得到記憶體中相同的動態庫的副本,因此節省了很多記憶體。

windows動態庫和靜態庫VS匯入

函式和資料被編譯進乙個二進位制檔案 通常擴充套件名為.lib 在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其他模組組合起來建立最終的可執行檔案 exe檔案 當發布產品時,只需要發布這個可執行檔案,並不需要發布被使用的靜態庫。在使用動態庫的時候,往往...

動態庫和靜態庫

本文主要解決以下幾個問題 1 為什麼要使用庫?2 庫的分類 3 建立自己的庫 或許大家對自己初學linux時的情形仍記憶尤新吧。如果沒有乙個能較好的解決依賴關係的包管理器,在linux下安裝軟體將是一件及其痛苦的工作。你裝a包時,可能會提示你要先裝b包,當你費盡心力找到b包時,可能又會提示你要先安裝...

動態庫和靜態庫

先抄一段 windows下的動態庫和靜態庫區別解釋,其實linux下意義一樣的,不過字尾名有些區別 靜態庫 在編譯的時候載入生成目標檔案,在執行時不用載入庫,在執行時對庫沒有依賴性。動態庫 在目標檔案執行時載入,手動載入,且對庫有依賴性。兩者區別 一,靜態庫的使用需要 1 包含乙個對應的標頭檔案告知...