每日一C之C静态库与动态库
每天拾一个C语言贝壳,厚积薄发,积跬步以致千里。
今日贝壳:C语言的静态库与动态库对比分析,各有长短
库: 指由标准常用函数编译而成的文件,旨在提高常用函数的可重用性,减轻开发人员负担。常用的sdtio.h,math.h等库便是C函数库的冰山一角。
1.静态库:指编译链接阶段将整个库复制到可执行文件
1.1优点:静态链接的程序不依赖外界库支持,具有良好的可移植性。
1.2缺点: 每次库更新都需要重新编译程序,即使更新很小或只是局部。
1.3缺点:每个静态链接的程序都有一份库文件,存储时增加了硬盘空间消耗,运行时则增加了内存消耗。
2.动态库:指知道运行时才将库链接到可执行程序
1.1优点: 动态链接方式的程序不需要包含库,占用的空间小很多。
1.2优点: 运行时系统内存只需提供一个共享库给所有程序动态链接,内存消耗减少。
1.3缺点: 需要系统中动态库支持才可运行,可能有动态库不兼容问题
小结:在linux系统中:静态库.a
动态库.so
在windows中:静态库.lib
动态库.dll
Have a nice day !