静态库:是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a
动态库:是在执行程序启动时加载到执行代码中,后缀名:.so
静态库一开始就加入了执行代码,使得可执文件比较臃肿,导致文件比较大,占用内存较大使得它的编译速度减慢,但是执行文件时可以直接调用代码,所以执行效率较高;而动态库只是在执行程序是才加载执行代码,所以占用内内存较小,但是由于代码需要现场调用,所以执行效率较低,但是编译速度较快。
静态库的可执行代码全部加载在程序中,这样易于布局,使得静态库的布局性较好;而动态库的执行代码是随时调用的,不易控制,所以布局较差,但是静态库容易升级,只要更新动态库即可,不用重新编写程序,但是静态库就不容易更新。