CMake与动态静态库

CMake

本篇来源于上信号与系统时候摸的鱼。

基本概念

用 CMakeList.txt 自动生成各平台的构建文件,是生成构建系统的工具。

稍高于基准的手动配置(定义项目结构,依赖项,编译选项, 不用手动配置工具。

配置

  • CMakeLists.txt
  • 构建目录(mkdir build),是保证源代码的整洁。

(感觉下一篇可以写一写 PATH。注册表什么的?)

CMakeList.txt 语法

(静态库与动态库又是什么?)

使用流程

  • 创 build 目录 → 生成构建文件(.../build # Cmake...)。
  • 编译与构建(make ...)。
  • 清理构建文件(make clean / 删除 Cmakecache.txt)。

作为编译流程的一部分,下级有make、ninja、vs 之类的构建工具,可以进一步了解。

静态库与动态库

基础是菜鸟教程的一篇blog。

同理不讲这俩的底层格式之内存布局。

什么是库

底层轮子工具包,让后人不必重复造轮子。 本底是可视行代码的三进制形式,可载入内存使用。

  • 静态库(.a、.lib)
  • 动态库(.so、.dll)。

源文件 → 编译 → 链接 → 执行

动/静态库于链接时接入,区别来自如何处理链接。

静态库

编译到程序中的库

优点

  • 移植到别的计算机的时候方便,不用配环境
  • 方便更新

缺点

  • 占用大
  • 更新不方便

构建

  • Linux下用ar工具构建
  • Windows用lib.exe构建

动态库

优点

  • 运行程序时调用
  • 方便更新

缺点

  • DLL HELL,就需要总是配环境

CMake与动态静态库
http://example.com/2025/05/29/折腾杂项/2025-05-29-CMake与动态静态库/
作者
ZHW
发布于
2025年5月29日
许可协议