![89106a540e7205f96729d5c704fd369d.png](https://img-blog.csdnimg.cn/img_convert/89106a540e7205f96729d5c704fd369d.png)
1. 共享库和静态库优缺点
动态库
优点
- 节省空间。使用动态库生成的可执行文件占磁盘空间少;
- 资源共享。系统中只需有一份就可让多个进程使用相同的功能;
- 方便升级。接口不变的情况下,只需替换相应的库文件即可。
缺点
生成的可执行文件发布时必须将其依赖的动态库同时发布。
静态库
优点
生成的可执行文件独立执行。软件发布方便。
缺点
- 占用空间大。由于将所有的功能链接进可执行文件中,导致可执行文件占用大量磁盘空间;
- 不方便升级。升级时需要替换整个可执行文件。
2. cmake 生成静态库和动态库
指令:add_library()
动态库
add_library(hello SHARED hello.c 1.c 2.c ...)
通过关键字 SHARED 生成动态库:libhello.so
静态库
add_library(hello STATIC hello.c 1.c 2.c ...)
通过关键字 STATIC 生成静态库:libhello.a