cmake:生成静态库和动态库

1. 共享库和静态库优缺点

动态库

优点

  1. 节省空间。使用动态库生成的可执行文件占磁盘空间少;
  2. 资源共享。系统中只需有一份就可让多个进程使用相同的功能;
  3. 方便升级。接口不变的情况下,只需替换相应的库文件即可。

缺点

生成的可执行文件发布时必须将其依赖的动态库同时发布。

静态库

优点

生成的可执行文件独立执行。软件发布方便。

缺点

  1. 占用空间大。由于将所有的功能链接进可执行文件中,导致可执行文件占用大量磁盘空间;
  2. 不方便升级。升级时需要替换整个可执行文件。

2. cmake 生成静态库和动态库

指令:add_library()

动态库

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

 

参考链接:

cmake:生成静态库和动态库

posted @ 2022-12-23 14:28  余生以学  阅读(338)  评论(0编辑  收藏  举报