What is static and dynamic libraries
他們有什么相同點嗎?
都是庫檔案,對于呼叫庫檔案的使用者來說,不管是靜態庫還是動態庫,呼叫的方式都是一樣的,沒什么區別,
Differences between static and dynamic libraries
動態庫和靜態庫的區別在于編譯階段的不同,
靜態庫編譯的時候,會把匯入的第三方庫檔案一起打包成一個靜態庫,
動態庫編譯的時候,只把匯入的第三方庫檔案的鏈接記錄下來,生成一個動態庫,呼叫者請求動態庫里面的函式的時候,如果需要呼叫第三方庫檔案,就是根據打包時記錄的動態庫鏈接資訊去系統里面找這個第三方庫檔案,如果能找到,就可以順利執行,如果找不到,就執行失敗,
做一個類似的比喻:
靜態庫編譯的時候類似值傳遞(Pass by Value);
動態庫編譯的時候類似參考傳遞(Pass by Reference);
How do the two techniques compare in terms of application?
不管是提供什么庫檔案給使用者,都是希望使用者能順利呼叫的,
如果你能確認使用者的設備里面一定有這些第三方庫檔案,可以打包成動態庫,打包成動態庫還能節省使用者的資源,
如果不能確認使用者的設備里面一定有這些第三方庫檔案,那么還是保險點,打包成一個靜態庫給他,
Reference
C++靜態庫與動態庫
https://www.cnblogs.com/skynet/p/3372855.html
Differences between static and dynamic libraries
https://www.linkedin.com/pulse/differences-between-static-dynamic-libraries-juan-david-tuta-botero
參考傳遞(pass by reference):
描述如何將實參傳遞給參考型別的形參,參考形參和其他形式的參考作業機理相似,形參被系結到相應的實參上,
值傳遞(pass by value):
描述如何將實參傳遞給非參考型別的形參,非參考型別的形參實際上是相應實參值的一個副本,
Github:https://github.com/Mysticbinary
君何不暢談一番?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548139.html
標籤:其他
下一篇:Gorm 實作無限樹形選單
