区别?三点
1.命名方式不同:
静态库libxxx.a:库名前加”lib”,后缀用”.a”,“xxx”为静态库名。
动态库libxxx.so:库名前加”lib”,后缀变为“.so”。
2.链接时间不同:
静态库的代码是在编译过程中被载入程序中。
动态库的代码是当程序运行到相关函数才调用动态库的相应函数
3.链接方式不同:
静态库的链接是将整个函数库的所有数据在编译时都整合进了目标代码。
动态库的链接是程序执行到哪个函数链接哪个函数的库。(用哪个链接哪个)
优缺点?
静态库:
动态库 :
优点是,动态库的改变并不影响你的程序,所以动态函数库升级比较方便;缺点是,因为函数库并没有整合进程序,所以程序的运行环境必须提供相应的库。喜欢的可以关注一下松鼠哥的公众号----嵌入式简单说