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

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

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

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

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

一、靜態鏈接

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

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

一、靜態鏈接

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

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

二、動態鏈接

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

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

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

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

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

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

閱讀全文

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

熱點內容
如何學好運用市場營銷 瀏覽:60
電度表內電池沒電怎麼看數據 瀏覽:683
在市場賣雜貨起什麼名字 瀏覽:47
圖紙識圖中的關鍵信息有哪些 瀏覽:430
鴻蒙技術社區在哪裡 瀏覽:744
單品核心數據監控包括哪些數據 瀏覽:36
配件代理利潤怎麼樣 瀏覽:361
台式電腦怎麼查看運行過程序 瀏覽:206
期權交易市場什麼時候上市 瀏覽:254
怎麼修改手機網游數據 瀏覽:106
二手鋼琴交易平台有哪些 瀏覽:480
atpcs規定數據棧為什麼類型 瀏覽:932
新區農貿市場怎麼走 瀏覽:22
西安海棠職業技術學校擴招宿舍怎麼分 瀏覽:467
開戶及交易注意什麼 瀏覽:612
成都潮音菜市場是哪個區 瀏覽:925
增加產品線有什麼意義 瀏覽:613
農產品推介新聞稿如何寫 瀏覽:696
了解製造業信息有哪些平台 瀏覽:767
想代理vr怎麼做 瀏覽:65