掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流
服務器應用,為了盡可能減小環(huán)境的影響,避免開發(fā)和線上環(huán)境的差別,以及同機器其他應用的影響,即使用動態(tài)庫我們也傾向于把所有用到的庫打包。(最新的思路是把整個文件系統打包,如Docker)這是前提。那么靜態(tài)鏈接的優(yōu)點是:

創(chuàng)新互聯是專業(yè)的浦江網站建設公司,浦江接單;提供成都網站制作、網站設計、外貿網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行浦江網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
1. 省空間:linker只會復制你用到的objects。
2. 打包簡單。實際上動態(tài)庫原名就是shared objects,如果沒準備share,用動態(tài)庫實在沒什么好處。除非:
3. 應用是多executable,多進程結構,那么動態(tài)庫既省內存又省磁盤空間。
4. 應用要動態(tài)加載進程內插件:進程空間內多份靜態(tài)庫煩死你。
動態(tài)鏈接庫和靜態(tài)鏈接庫一般是編譯集成一系列的接口(函數)
在程序源代碼編譯完成后通過編譯器編譯并通過鏈接器與這些庫進行鏈接
動態(tài)鏈接庫與靜態(tài)鏈接庫的區(qū)別在于鏈接器在進行鏈接時靜態(tài)庫會被直接編譯進程序里
而動態(tài)鏈接庫并不會,我們這里將這些鏈接庫稱作依賴(動態(tài)庫和靜態(tài)庫)
程序的運行需要這些依賴,程序在靜態(tài)鏈接后該程序本身便已包含該依賴
而動態(tài)鏈接后的程序本身本不包含該依賴,這些依賴需要執(zhí)行者自行安裝進操作系統(動態(tài)庫、運行時庫)
程序運行時會動態(tài)地加載這些庫
linux上動態(tài)庫一般的后綴后為.so
靜態(tài)庫一般的后綴為.a
由于靜態(tài)鏈接會直接將庫編譯進程序里所以靜態(tài)編譯后的程序相較于動態(tài)鏈接所要大
動態(tài)鏈接 是只建立一個引用的接口,而真正的代碼和數據存放在另外的可執(zhí)行模塊中,在運行時再裝入; 而 靜態(tài)鏈接 是把所有的代碼和數據都復制到本模塊中,運行時就不再需要庫了
到此,以上就是小編對于windows靜態(tài)庫和動態(tài)庫的區(qū)別的問題就介紹到這了,希望這3點解答對大家有用。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流