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