cmake编译动态库
时间: 2024-10-07 19:05:21 浏览: 45
CMake是一个跨平台、开源的构建系统管理工具,它能帮助开发者生成各种类型的项目配置文件,包括用于构建动态链接库(DLL)的。以下是使用CMake编译动态库的基本步骤:
1. **初始化CMakeLists.txt**:首先,在你的项目根目录下创建一个名为`CMakeLists.txt`的文件,这是CMake配置的核心。
2. **添加项目类型**:
```cmake
project(MyDynamicLibrary CXX)
```
这里指定了这是一个C++项目,并且是动态库类型。
3. **设置源文件目录**:
```cmake
add_library(MyDynLib SHARED src/DynamicLib.cpp)
```
`add_library`命令告诉CMake你有一个共享库(SHARED表示动态库),并指定源文件位置。
4. **指定编译选项**:
```cmake
target_compile_options(MyDynLib PRIVATE -fPIC)
```
`-fPIC`标志告诉编译器生成的位置无关代码(Position Independent Code),这对于动态链接至关重要。
5. **链接依赖**:
如果有其他静态库或动态库需要链接到你的动态库,可以使用`target_link_libraries`命令。
6. **生成构建文件**:
```cmake
cmake_minimum_required(VERSION 3.10)
enable_language(CXX)
cmake_policy(SET CMP0091 NEW) # 针对某些CMake新特性启用兼容模式
cmake_generator(<your_generator>) # 替换为你的目标平台的构建工具,如Unix Makefiles, Ninja等
cmake . -DCMAKE_BUILD_TYPE=Release # 或者 Debug 等,配置构建类型
make # 或 ninja 进行编译
```
完成上述步骤后,运行`cmake`命令会生成特定平台的构建脚本(例如.makefile或者.ninja),接着执行`make`(或其他生成的构建工具)即可编译出动态库。
阅读全文