1、雖然動態庫有點浪費內存,但是動態庫最大的作用是:減少占用磁盤空間,減少開發時的編譯時間,而不是妳想的編譯速度慢。因為采用了動態庫,所以如果我修改了動態庫,我只需要編譯動態庫。而如果采用了靜態庫,如果修改了靜態庫,那麽,所有用了該靜態庫的程序和靜態庫都必須重新編譯。而且gcc不是掃描整個libc.so文件。因為so文件裏有符號表,哪個符號在哪個.o文件裏,只要掃描符號表就知道了,而且由於他不需要從so文件中拷貝使用的函數,從某種意義上來說編譯速度比靜態庫更快。
2、動態庫的加載采用寫時拷貝技術,即:只有當我用這個函數的時候我才把該函數部分拷貝過來,它不會拷貝整個so文件,只會拷貝需要的部分。