cmake 动态链接库
时间: 2025-06-26 16:09:12 浏览: 13
### 如何使用 CMake 创建动态链接库
创建动态链接库的过程可以通过配置 `CMakeLists.txt` 文件实现。以下是关于如何通过 CMake 生成动态链接库的关键步骤及其解释。
#### 配置 CMakeLists.txt 的基本结构
为了生成动态链接库,需要在 `CMakeLists.txt` 中定义项目的基本信息以及指定目标类型为 `SHARED`。以下是一个典型的例子:
```cmake
cmake_minimum_required(VERSION 2.6) # 指定所需的最低 CMake 版本[^4]
project(example_project) # 定义项目的名称
# 添加头文件目录以便编译器能够找到头文件
include_directories(include) # 设置包含路径
# 收集源文件到变量中
aux_source_directory(src SRC_LIST) # 自动收集 src 目录下的所有源文件
# 声明要生成的动态链接库
add_library(my_dynamic_lib SHARED ${SRC_LIST}) # 使用 SHARED 关键字声明动态库[^3][^5]
# 如果存在依赖项,则需将其链接至当前库
target_link_libraries(my_dynamic_lib dependency1 dependency2) # 连接其他依赖库[^2]
```
上述代码片段展示了如何通过 CMake 来生成一个名为 `my_dynamic_lib` 的动态链接库,并指定了其所需依赖关系。
#### 动态库类型的说明
当使用 `add_library` 函数时,必须明确指出所创建的目标是何种类型的库。对于动态链接库而言,应选用关键字 `SHARED`。此外还有两种常见选项:
- **STATIC**: 表示静态库。
- **MODULE**: 类似于动态库但在某些平台上不支持 dyld 加载机制的情况下会被视为共享库处理[^5]。
#### 输出路径设定
如果希望自定义生成后的动态链接库存储位置,可以在脚本里加入如下命令行语句来调整默认行为:
```cmake
set(LIBRARY_OUTPUT_PATH /desired/path/to/output/libs/) # 设定最终产物存放地址
```
此操作允许开发者灵活控制构建成果的具体落地点,从而便于后续集成测试或部署流程管理。
#### 总结
综上所述,借助 CMake 工具链完成动态链接库制作主要涉及以下几个方面的工作:确定合适的最小兼容版本号;命名整个工程项目;引入必要的开发资源(比如 .h 头档);搜集实际参与编译过程中的 c/cpp 实现单元集合起来作为输入素材交给 add_library 方法调用——记得标注成 SHARE 形式哦!最后别忘了考虑可能存在的第三方关联模块也要一并纳入进来形成完整的依赖链条才行[^1]-。
```python
print("Dynamic library created successfully!")
```
阅读全文
相关推荐


















