靜態鏈接與動態鏈接

靜態鏈接是指把要調用的函數或者過程直接鏈接到可執行文件中,成為可執行文件的一部分。也就是函數和過程的代碼就在程序的可執行文件中,可執行文件包含了運行時所需的全部代碼。
動態鏈接是指所調用的函數代碼并沒有被拷貝到應用程序的可執行文件中去,而是僅僅在其中加入了所調用函數的描述信息,往往是一些重定位信息。僅當應用程序被裝入內存開始運行時,在操作系統的管理下,應用程序與相應的動態鏈接庫(dynamic link library,dll)之間建立鏈接關系,當要執行所調用dll中的函數時,根據鏈接產生的重定位信息,操作系統才轉去執行dll中相應的函數代碼。
靜態鏈接的優點是執行程序能夠在其他同類操作系統的機器上直接運行。缺點是當多個程序都調用相同函數時,內存中就會存在這個函數的多個拷貝,這樣就浪費了內存資源。動態鏈接的執行程序則不能夠在其他同類操作系統的機器上直接運行,除非把該exe文件所需的dll文件都一起拷貝過去,或者對方機器上也有所需的相同版本的dll文件,否則是不能保證正常運行的。
靜態鏈接庫就是使用的.lib文件,庫中的代碼最后需要鏈接到可執行文件中去,所以靜態鏈接的可執行文件一般比較大一些。
動態鏈接庫是一個包含可由多個程序同時使用的代碼和數據的庫。可執行程序(如.exe文件或.dll文件)在運行時加載動態鏈接庫,即將程序所需的動態鏈接庫映射到調用進程的地址空間。
靜態鏈接庫和動態鏈接庫的相同點是它們都實現了代碼的共享。不同點是靜態鏈接庫lib中的代碼被包含在調用的exe文件中,該lib中不能再包含其他動態鏈接庫或者靜態鏈接庫了。動態鏈接庫dll可以被調用的exe動態地“引用”和“卸載”,該dll中可以包含其他動態鏈接庫或者靜態鏈接庫。

轉載于:https://www.cnblogs.com/xidian2014/p/8615718.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenCV 編程簡介(矩陣/圖像/視頻的基本讀寫操作)

PS. 由于csdn博客文章長度有限制,本文有部分內容被截掉了。 在OpenCV中文網站的wiki上有可讀性更好、并且是完整的版本,歡迎瀏覽。 OpenCV Wiki :《OpenCV 編程簡介(矩陣/圖像/視頻的基本讀寫操作)》 Introduction to…

再送一波干貨,測試2000線程并發下同時查詢1000萬條數據庫表及索引優化

原文:再送一波干貨,測試2000線程并發下同時查詢1000萬條數據庫表及索引優化繼上篇文章《絕對干貨,教你4分鐘插入1000萬條數據到mysql數據庫表,快快進來》發布后在博客園首頁展示得到了挺多的閱讀量,我這篇文章就是對上篇文章的千萬…

同步機制遵循的原則

進程在并發執行時為了保證結果的可再現性,各進程執行序列必須加以限制以保證互斥地使用臨界資源,相互合作完成任務。多個相關進程在執行次序上的協調稱為進程同步。用于保證多個進程在執行次序上的協調關系的相應機制稱為進程同步機制。 所有的進程同步機…

wps html編輯表格,WPS 2017個人版演示word使用技巧(wps2017表格使用技巧)

wps2017是一款非常深受用戶喜愛的辦公軟件。在2017這個新的版本中,依舊繼承了它之前兼容免費、體積小、多種界面切換、云辦公等眾多優秀的功能特點,下面小編就來教大家wps2017的使用方式使用技巧:一、wps2017個人版word使用技巧技巧一&#x…

ubuntu 解決“無法獲得鎖 /var/lib/dpkg/lock -open (11:資源暫時不可用)”的方法...

在ubuntu系統的termial下,用apt-get install 安裝軟件的時候,如果在未完成下載的情況下將terminal close。此時 apt-get進程可能沒有結束。結果,如果再次運行apt-get install 命令安裝如今,可能會發生下面的提示:無法獲…

es Update API

2019獨角獸企業重金招聘Python工程師標準>>> es Update API 博客分類: 搜索引擎,爬蟲 The update API allows to update a document based on a script provided. The operation gets the document (collocated with the shard) from the ind…

聰明人,容易不務實

聰明人擁有很多優勢。首先,聰明人的邏輯強、思路靈活,理解事物很快,因而經常很有創意。聰明人本身,也因為經常感覺到自己「快速理解、時有創意」的特質,認為沒有什么事情難得倒他。漸漸的,在看待任何事物時…

Linux 線程占用CPU過高定位分析

今天朋友問我一個Linux程序CPU占用漲停了&#xff0c;該如何分析&#xff0c; CPU占用過高&#xff0c;模擬CPU占用過高的情況 先上一段代碼&#xff1a; 1 #include <iostream>2 #include <thread>3 #include <vector>4 5 6 int main(int argc, char **argv…

計算機二級常備知識,2020年計算機二級Office考試必備題庫資料!

考試資料在手&#xff0c;考試不用愁&#xff01;領報名界面顯示計算機二級Office通過率僅21.07%&#xff0c;很多人認為是既費腦子又費時間的考試&#xff0c;可能是方法不對&#xff0c;導致花了很多時間還是考不過&#xff0c;剛剛收到3月考的二級證書啦&#xff0c;馬上還有…

MR作業的提交監控、輸入輸出控制及特性使用

2019獨角獸企業重金招聘Python工程師標準>>> MR作業的提交監控、輸入輸出控制及特性使用 博客分類&#xff1a; hadoop 提交作業并監控 JobClient是用戶作業與JobTracker交互的主要接口&#xff0c;它提供了提交作業&#xff0c;跟蹤作業進度、訪問任務報告及logs、…

ACK和NAK

ACK 英文縮寫: ACKnowledge Character在數據通信傳輸中&#xff0c;接收站發給發送站的一種傳輸控制字符。它表示確認發來的數據已經接受無誤。 NAK 英文縮寫: Negative Acknowledgment是否定應答或者非應答的縮寫。它是一個用于數字通信中確認數據受到但是有小錯誤的信號。

http協議與web本質

當你在瀏覽器地址欄敲入“http://www.csdn.net/”&#xff0c;然后猛按回車&#xff0c;呈現在你面前的&#xff0c;將是csdn的首頁了&#xff08;這真是廢話&#xff0c;你會認為這是理所當然的&#xff09;。作為一個開發者&#xff0c;尤其是web開發人員&#xff0c;我想你有…

計算機科學與技術考研課程安排,計算機科學與技術(0812)碩士研究生培養方案(一)...

一、培養目標本專業培養掌握馬克思主義基本原理、計算機科學與技術基礎理論和系統知識&#xff0c;深入了解國內外計算機科學與技術領域新技術和新動向&#xff0c;具備熟練的編程、測試能力&#xff0c;熟練掌握1門外語并具有較強創新和實踐能力&#xff0c;能夠在計算機科學與…

Docker storage driver 選擇

2019獨角獸企業重金招聘Python工程師標準>>> Docker storage driver 選擇 博客分類&#xff1a; docker 本文的目的是說明&#xff0c;如何在生產環境中選擇Docker 的storage driver。以及對應Linux發行版本下Docker storage driver的配置方法。主要參考&#xff0c…

臨界資源和臨界區

臨界資源&#xff1a; 臨界資源是一次僅允許一個進程使用的共享資源&#xff0c;各進程采取互斥的方式實現共享的資源。 屬于臨界資源的硬件有&#xff0c;打印機&#xff0c;磁帶機等&#xff1b;軟件有消息隊列&#xff0c;變量&#xff0c;數組&#xff0c;緩…

手機網站制作html5,【怎么樣制作手機網站】如何使用dreamweavercs6建立手機網站?織夢手機WAP瀏覽模塊如何制作手機網站?如何制作html5手機頁面?...

【怎么樣制作手機網站】如何使用dreamweavercs6建立手機網站?織夢手機WAP瀏覽模塊如何制作手機網站?如何制作html5手機頁面?下面就和小編一起來看看吧!如何使用dreamweavercs6建立手機網站?制作步驟如下:1。打開DreamweaverCS6軟件&#xff0c;可以在DreamweaverCS6軟件的開…

Docker查看關聯容器的卷宗在本機的存儲位置

docker inspect -f {{.Volumes}} volume1轉載于:https://www.cnblogs.com/toSeeMyDream/p/8623430.html

《那些年啊,那些事——一個程序員的奮斗史》轉載1到7

段伏櫪&#xff0c;一個瘦小&#xff0c;矮小&#xff0c;根本和“帥”這個字粘不上任何關系的普通人。名字的來源在于其多讀了幾年書的老爹&#xff0c;總抱著有一天要出書出名乃至于名流千古的美好理想&#xff0c;但可惜現實總是給予他無情的而又現實的打擊&#xff0c;于是…

如果在docker中部署tomcat,并且部署java應用程序

2019獨角獸企業重金招聘Python工程師標準>>> 如果在docker中部署tomcat,并且部署java應用程序 博客分類&#xff1a; docker 1、先說如何在docker中部署tomcat 第一步&#xff1a;root用戶登錄在系統根目錄下創建文件夾tomcat7,命令如&#xff1a;mkdir tomcat7&…