動態連結意思
動態連結(Dynamic Linking)是一種程式設計技術,用於在執行時期載入程式碼或資源。與靜態連結相反,靜態連結是在編譯時期將程式碼或資源嵌入到執行檔中。
在動態連結中,程式碼或資源並不直接包含在執行檔中,而是存放在一個獨立的共享庫(Shared Library)或動態連結庫(DLL, Dynamic Link Library)中。當程式執行時,作業系統的動態連結載入器(Dynamic Linker)會在需要時從共享庫中載入程式碼或資源。
動態連結有以下優點:
- 減少執行檔大小:由於程式碼或資源不包含在執行檔中,執行檔大小可以大幅減少。
- 提高記憶體使用效率:多個程式可以共享同一個共享庫的實體記憶體映像,減少記憶體使用。
- 方便更新:共享庫可以獨立更新,而不需要重新編譯或更新所有依賴它的程式。
- 延遲載入:只有在程式真正使用到某個函式或資源時,才會載入相關的共享庫,這可以減少啟動時間。
動態連結在許多程式設計語言和操作系統中都是常見的技術,例如在C和C++中,使用靜態連結的程式會包含標頭檔(Header Files)中的#pragma comment(lib, "library_name")
指令來指定連結器應該連結哪些共享庫。在Windows操作系統中,動態連結庫(DLL)是一個常見的共享庫格式,而在Linux和macOS中,則使用共享 object(.so)或動態共享庫(Dynamically Shared Object, DSO)。