What is static and dynamic libraries 他們有什麼相同點嗎? 都是庫文件。對於調用庫文件的使用者來說,不管是靜態庫還是動態庫,調用的方式都是一樣的,沒什麼區別。 Differences between static and dynamic libraries 動態庫 ...
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
君何不暢談一番?