linux下的動態鏈接庫和靜態鏈接庫到底是個什么鬼?
動態庫和靜態庫都是一組函數集合,打包在一起供應用程序調用,區別是:靜態庫名稱一般為xxx.a,在編譯時和應用程序鏈接在一起,這樣的應用程序占用空間較大。動態庫名稱一般為xxx.so,對于動態庫即可以在編譯時鏈接,也可以使用dlopen()/dlsym()/dlclose()函數在運行時調用,后種方式占用空間較小,且可以實現動態庫在進程間共享,只在內存中保留一份,減少了內存開銷。
linux下的動態鏈接庫和靜態鏈接庫到底是個什么鬼?
動態庫和靜態庫都是一組函數集合,打包在一起供應用程序調用,區別是:靜態庫名稱一般為xxx.a,在編譯時和應用程序鏈接在一起,這樣的應用程序占用空間較大。動態庫名稱一般為xxx.so,對于動態庫即可以在編譯時鏈接,也可以使用dlopen()/dlsym()/dlclose()函數在運行時調用,后種方式占用空間較小,且可以實現動態庫在進程間共享,只在內存中保留一份,減少了內存開銷。