cmake 生成动态库
时间: 2023-07-11 10:05:33 浏览: 38
要使用 CMake 生成动态库,可以按照以下步骤进行:
1. 在 CMakeLists.txt 文件中添加一个 `add_library` 命令,并将类型设置为 `SHARED`,如下所示:
```
add_library(mylib SHARED source1.cpp source2.cpp)
```
这将生成一个名为 `libmylib.so` 的动态库(在 Linux 平台上),其中包含 `source1.cpp` 和 `source2.cpp` 中的所有编译对象。
2. 可选地,您可以使用 `install` 命令将库安装到系统库目录中:
```
install(TARGETS mylib LIBRARY DESTINATION /usr/local/lib)
```
这将在 `/usr/local/lib` 目录下安装 `libmylib.so` 文件。
3. 运行 `cmake` 命令来生成 Makefile 文件:
```
cmake .
```
4. 运行 `make` 命令来编译并生成动态库:
```
make
```
如果一切顺利,您应该能够在您的工程目录下找到生成的动态库文件。
相关问题
cmake 生成动态库怎么也去链接动态库
在使用CMake生成动态库时,我们可以通过以下步骤链接动态库:
1. 首先,在CMakeLists.txt文件中使用add_library命令来生成动态库。例如,假设我们要生成名为mylib的动态库,可以使用如下命令:
```
add_library(mylib SHARED src1.cpp src2.cpp)
```
这将生成一个名为libmylib.so的动态库文件。
2. 接下来,我们需要指定链接的动态库。使用target_link_libraries命令将所需的动态库链接到生成的目标库上。假设我们的动态库需要链接到名为foo的动态库,可以使用如下命令:
```
target_link_libraries(mylib foo)
```
这将链接foo动态库到mylib中。
3. 最后,在CMakeLists.txt文件中使用add_executable命令生成可执行文件,并在该命令中链接生成的动态库。例如,假设我们要生成名为myapp的可执行文件并链接mylib动态库,可以使用如下命令:
```
add_executable(myapp main.cpp)
target_link_libraries(myapp mylib)
```
这将链接mylib动态库到myapp可执行文件中。
通过以上步骤,我们可以使用CMake生成动态库,并将其链接到其他的动态库或可执行文件中。在编译时,CMake会自动为我们处理库的链接过程,从而使得我们能够使用动态库的功能。
cmake 生成动态库 放在指定位置
要将CMake生成的动态库放在指定位置,你可以使用以下命令:
```
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY <path/to/directory>)
```
其中 `<path/to/directory>` 是你想要将动态库放置的目录路径。这个命令会将所有生成的动态库放在指定的目录下。
或者,如果你只想将一个特定的动态库放在指定位置,可以使用以下命令:
```
set_target_properties(<target_name> PROPERTIES LIBRARY_OUTPUT_DIRECTORY <path/to/directory>)
```
其中 `<target_name>` 是你要放置的动态库的名称, `<path/to/directory>` 是你想要将它放置的目录路径。
这两个命令都应该在 `CMakeLists.txt` 文件中的 `add_library()` 命令之后使用。