站長資訊網
最全最豐富的資訊網站

動態庫和靜態庫的區別是什么

區別:1、靜態庫的擴展名一般為“.a”或“.lib”;動態庫的擴展名一般為“.so”或“.dll”。2、靜態庫在編譯時會直接整合到目標程序中,編譯成功的可執行文件可獨立運行;動態庫在編譯時不會放到連接的目標程序中,即可執行文件無法單獨運行。

動態庫和靜態庫的區別是什么

本教程操作環境:windows10系統、Dell G3電腦。

靜態庫和動態庫最本質的區別就是:該庫是否被編譯進目標(程序)內部

靜態(函數)庫

一般擴展名為(.a.lib),這類的函數庫通常擴展名為libxxx.axxx.lib

這類庫在編譯的時候會直接整合到目標程序中,所以利用靜態函數庫編譯成的文件會比較大,這類函數庫最大的優點就是編譯成功的可執行文件可以獨立運行,而不再需要向外部要求讀取函數庫的內容;但是從升級難易度來看明顯沒有優勢,如果函數庫更新,需要重新編譯。

動態函數庫

動態函數庫的擴展名一般為(.so.dll),這類函數庫通常名為libxxx.soxxx.dll

與靜態函數庫被整個捕捉到程序中不同,動態函數庫在編譯的時候,在程序里只有一個“指向”的位置而已,也就是說當可執行文件需要使用到函數庫的機制時,程序才會去讀取函數庫來使用;也就是說可執行文件無法單獨運行。這樣從產品功能升級角度方便升級,只要替換對應動態庫即可,不必重新編譯整個可執行文件。

綜上,不能看出:

從產品化的角度,發布的算法庫或功能庫盡量使動態庫,這樣方便更新和升級,不必重新編譯整個可執行文件,只需新版本動態庫替換掉舊動態庫即可。

從函數庫集成的角度,若要將發布的所有子庫(不止一個)集成為一個動態庫向外提供接口,那么就需要將所有子庫編譯為靜態庫,這樣所有子庫就可以全部編譯進目標動態庫中,由最終的一個集成庫向外提供功能。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产日韩综合一区二区性色AV| 久久久久无码精品国产h动漫| 久久久亚洲精品蜜桃臀| 欧美日韩色另类综合| 国产成人精品三级麻豆| 国产69精品麻豆久久久久| 18国产精品白浆在线观看免费| 91精品视频在线免费观看| 久久国产乱子伦精品免费一| 亚洲中文久久精品无码ww16| 国产区精品高清在线观看| 九九视频精品在线| 亚洲A∨午夜成人片精品网站 | 惠民福利中文字幕人妻无码乱精品 | 老汉精品免费AV在线播放| 久久精品一区二区免费看| 日韩精品免费在线视频| 久久精品国产91久久麻豆自制 | 国内精品免费视频自在线 | 色综合91久久精品中文字幕| 人妻少妇看A偷人无码精品视频| 99在线精品视频观看免费| 国产成人精品日本亚洲网址| 91精品国产自产在线老师啪| 久久久久久精品久久久久| 在线精品91青草国产在线观看| 久久久久人妻精品一区二区三区| 99在线观看精品| 精品三级AV无码一区| 在线电影国产精品| 国产精品揄拍一区二区| 亚洲精品免费网站| 人人妻人人澡人人爽人人精品浪潮 | 国精品无码一区二区三区在线| 99视频在线观看精品| 国产成人精品无码一区二区三区 | 国产精品亚洲不卡一区二区三区| 国产精品99无码一区二区| 国产免费久久精品99久久| 国产一级精品高清一级毛片 | 久久国产精品无码一区二区三区|