静态编译和动态编译区别
生活随笔
收集整理的這篇文章主要介紹了
静态编译和动态编译区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
靜態函數庫
一般擴展名為(.a),這類的函數庫通常擴展名為libxxx.a 。
這類函數庫在編譯的時候會直接整合到程序中,所以利用靜態函數庫編譯成的文件會比較大,這類函數庫最大的優點就是編譯成功的可執行文件可以獨立運行,而不再需要向外部要求讀取函數哭的內容;但是從升級難易度來看明顯沒有優勢,如果函數庫更新,需要重新編譯。
動態函數庫
動態函數庫的擴展名一般為(.so),這類函數庫通常名為libxxx.so 。
與靜態函數庫被整個捕捉到程序中不同,動態函數庫在編譯的時候,在程序里只有一個“指向”的位置而已,也就是說當可執行文件需要使用到函數庫的機制時,程序才會去讀取函數庫來使用;也就是說可執行文件無法單獨運行。
綜上可以知道,靜態函數庫可能都是源代碼,而動態函數庫本身就可能是一個可執行文件。
總結
以上是生活随笔為你收集整理的静态编译和动态编译区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gcc/g++基本命令简介
- 下一篇: 旅行商问题的n种解法