導航:首頁 > 軟體知識 > 程序是如何執行靜態鏈接的

程序是如何執行靜態鏈接的

發布時間:2024-10-18 07:33:12

① 靜態鏈接和動態鏈接的區別

靜態鏈接和動態鏈接的區別是靜態鏈接和動態鏈接兩者最大的區別就在於鏈接的時機不一樣,靜態鏈接是在形成可執行程序前,而動態鏈接的進行則是在程序執行時。

一、靜態鏈接

特點:在生成可執行文件的時候(鏈接階段),把所有需要的函數的二進制代碼都包含到可執行文件中去。因此,鏈接器需要知道參與鏈接的目標文件需要哪些函數,同時也要知道每個目標文件都能提供什麼函數,這樣鏈接器才能知道是不是每個目標文件所需要的函數都能正確地鏈接。如果某個目標文件需要的函數在參與鏈接的目標文件中找不到的話,鏈接器就報錯了。

靜態鏈接和動態鏈接的優缺點

一、靜態鏈接

1、優點:在程序發布的時候就不需要的依賴庫,也就是不再需要帶著庫一塊發布,程序可以獨立執行。

2、缺點:程序體積會相對大一些。如果靜態庫有更新的話,所有可執行文件都得重新鏈接才能用上新的靜態庫。

二、動態鏈接

1、優點: 多個程序可以共享同一段代碼,而不需要在磁碟上存儲多個拷貝。

2、缺點: 由於是運行時載入,可能會影響程序的前期執行性能。

② 操作系統中程序的鏈接:裝入時動態鏈接、運行時動態鏈接和靜態鏈接都是什麼意思有什麼區別

靜態鏈接是在生成可執行程序的時候就把庫中的內容加入到程序中。

載入時動態鏈接是在將功能模塊讀入內存時把動態庫中調用到的相關模塊的內容載入內存。
運行時動態鏈接是在執行程序調用到模塊內容時再將動態庫中的相應模塊載入到內存。

這里有兩個時間問題。一是載入時間,二是執行時間。
靜態鏈接由於是在一開始就把所有模塊都載入進入內存,所以如果模塊很多的話效率就會被大大拉低。
載入時動態鏈接是分別載入,當把一個模塊載入內存時檢查有調用關系的模塊載入,比靜態鏈接節省了許多開銷。
運行時動態鏈接則是把當前模塊調用的模塊推遲到調用的時候再載入。
三者之間的關系就像是機槍,沖鋒槍和手槍
機槍在一開始就把所有子彈裝好,開槍的時候很快,但也很笨重。
沖鋒槍則是將子彈分彈夾存好,輕便了許多,但是會有一段裝填時間。
手槍就更加輕便了,但是彈夾容量更小,裝填的頻率又變高了。

閱讀全文

與程序是如何執行靜態鏈接的相關的資料

熱點內容
計算機科學與技術專業要什麼證書 瀏覽:35
農業如何施肥打葯有哪些新技術 瀏覽:885
武漢哪裡有仿玉批發市場 瀏覽:730
移動業務代理是干什麼的 瀏覽:575
東莞菜市場人多的有哪些 瀏覽:21
技術制圖用什麼筆寫文字 瀏覽:990
大數據游戲軟體開發哪個好 瀏覽:649
處女座男生不回信息怎麼回事 瀏覽:180
工信部機動車合格證信息如何維護 瀏覽:695
浙江旅遊機票代理怎麼聯系 瀏覽:571
回收門店交易多久可以拿到錢 瀏覽:772
什麼是要害核心技術 瀏覽:878
為什麼我國奢侈品市場越來越大 瀏覽:244
微信天數倒計時是哪個程序 瀏覽:977
如何剪切一個圖標程序 瀏覽:323
如何製作一個能打卡的微信小程序 瀏覽:499
在國內去哪裡開戶做外匯交易 瀏覽:53
技術交底表格什麼格式 瀏覽:877
深圳專利代理哪些 瀏覽:961
如何約定技術股東 瀏覽:770