日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态链接库.so和静态链接库.a的区别

發布時間:2023/11/29 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态链接库.so和静态链接库.a的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

靜態鏈接庫:

? ?擴展名:.a
? ?編譯行為:在編譯的時候,將函數庫直接整合到執行程序中(所以利用靜態庫編譯生成的文檔會更大)
??獨立執行的狀態:編譯成功的可執行文件可以獨立運行,不需要再向外部要求讀取函式庫的內容
??更新:如果函式庫更新,需要將整個項目程序重新編譯
??好處:方便程序移植

動態鏈接庫:

? ?擴展名:.so
? ?編譯行為:在編譯的時候,程序里面僅有指向動態庫所在的指標,其內容并沒有被整合到執行文件中。所以,在程序運行之初不需要加載所有代碼,只有在用到函式庫中的某個函數時,程序才會去讀取動態庫的內容(所以利用動態庫編譯生成的文檔會小些)
??獨立執行的狀態:編譯成功的可執行文件不能獨立執行,函式庫必須存在,而且庫所在的目錄也不能改變。(移動之后,必須重新編譯鏈接)
? ?更新:如果函式庫更新,不需要重新編譯,因為執行文件里僅有庫的位置(前提是函式庫名稱、位置都沒變)
? ?好處:
??1) 只保留接口,將動態庫和程序代碼獨立,提高代碼的可復用性,降低程序耦合度。
??2) 節約內存,減少頁面交換。
比如:計算機同時運行多個程序,都應用static.a,在內存中就會存在多份拷貝。一旦程序數量過多,就有可能內存不足。

而在動態庫在內存中只存在一份拷貝,不會浪費空間。

轉載于:https://blog.51cto.com/13097817/2047647

總結

以上是生活随笔為你收集整理的动态链接库.so和静态链接库.a的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。