静态库的制作:
Lib.h
Lib.c
Program.c
首先将Lib.c编译成Lib.o
然后将Lib.o打包为静态库
然后生成可执行文件StaticProgram1
最后执行StaticProgram1
动态库制作:
先生成Lib.so动态文件
然后生成DLLProgram1文件
最后执行
从上述结果来看,静态链接和动态链接并没有什么区别。现在让我从其他角度来看看他们之间的区别。
静态链接的可执行文件比动态链接的可执行文件的占用空间更大。StaticProgram1 的 所占字节大小16760 Byte
DLLProgram1 的 所占字节大小16688 Byte
DLLProgram1所占字节数量小于StaticProgram1
静态链接的可执行文件若需要修改,则需要修改一个模块后,所有目标文件重新编译。
动态链接的可执行文件若需要修改,则仅需要修改动态链接所涉及的一个模块即可,不需要重新编译生成新的可执行文件,只需要将动态链接文件重新编译即可。
示例:
Lib.c
重新生成Lib.so
执行./DLLProgram1