cmake怎么编译动态库
时间: 2023-07-11 21:17:28 浏览: 57
要编译动态库,需要在CMakeLists.txt文件中添加以下命令:
```
add_library(your_library_name SHARED your_source_files)
```
其中,your_library_name是你要编译的动态库的名称,your_source_files是你的源代码文件。使用SHARED关键字告诉CMake生成一个动态链接库(也称为共享库)。然后,运行cmake和make命令来编译生成动态库。如果你想要使用静态库,只需要将SHARED改成STATIC即可。
相关问题
cmake 编译动态库
要使用CMake编译动态库,你需要在CMakeLists.txt文件中进行相应的设置。以下是一个简单的示例:
首先,在你的项目根目录下创建一个CMakeLists.txt文件,并添加以下内容:
```cmake
cmake_minimum_required(VERSION 3.12)
project(MyLibrary)
set(CMAKE_CXX_STANDARD 11)
# 添加动态库的源文件
set(SOURCE_FILES
src/mylib.cpp
)
# 生成动态库
add_library(MyLibrary SHARED ${SOURCE_FILES})
```
在上述示例中,我们假设你的动态库源文件为src/mylib.cpp。你可以根据实际情况修改此路径。
然后,创建一个名为build的目录,并在其中执行以下命令来构建你的项目:
```shell
$ mkdir build
$ cd build
$ cmake ..
$ make
```
执行完上述命令后,CMake会生成一个动态库文件(以.so为扩展名)。你可以将该库文件用于你的项目中。
请注意,上述示例是一个简单的示意,你可能需要根据你的具体需求来进行适当的修改。
cmake 编译动态库和静态库
要使用 CMake 编译动态库和静态库,你可以按照以下步骤进行操作:
1. 创建一个 CMakeLists.txt 文件,该文件描述了构建过程和项目配置。
2. 在 CMakeLists.txt 文件中,使用 `add_library` 命令来定义要构建的库。使用 `SHARED` 参数来指定动态库,使用 `STATIC` 参数来指定静态库。例如:
```cmake
# 构建动态库
add_library(mylib SHARED src/mylib.cpp)
# 构建静态库
add_library(mylib_static STATIC src/mylib.cpp)
```
3. 如果你有多个源文件,可以将它们一起添加到库中:
```cmake
# 构建动态库
add_library(mylib SHARED src/mylib.cpp src/other.cpp)
# 构建静态库
add_library(mylib_static STATIC src/mylib.cpp src/other.cpp)
```
4. 如果你想为库定义公共头文件目录,可以使用 `target_include_directories` 命令。例如:
```cmake
target_include_directories(mylib PUBLIC include)
```
5. 如果你希望链接其他库到你的库中,可以使用 `target_link_libraries` 命令。例如:
```cmake
target_link_libraries(mylib PUBLIC otherlib)
```
6. 最后,在 CMakeLists.txt 文件中添加一个 `install` 命令,以便在构建过程完成后安装库文件到指定的目录。例如:
```cmake
install(TARGETS mylib DESTINATION lib)
install(FILES include/mylib.h DESTINATION include)
```
7. 运行 CMake 命令来生成构建系统所需的文件:
```shell
cmake .
```
8. 使用生成的构建系统来编译和构建库:
```shell
make
```
在构建过程完成后,你将在指定的目录(例如 `lib`)中找到生成的动态库和静态库文件。