生成动态库, target_link_libraries()函数中,添加STATIC ,给出经典列子
时间: 2023-10-24 15:19:33 浏览: 50
好的,关于生成动态库并使用target_link_libraries()函数添加STATIC参数的例子如下:
```
cmake_minimum_required (VERSION 3.10)
project (mylib)
# 生成动态库
add_library (mylib SHARED mylib.cpp)
# 添加STATIC参数
target_link_libraries (mylib STATIC)
# 安装库文件
install (TARGETS mylib DESTINATION lib)
install (FILES mylib.h DESTINATION include)
```
在这个例子中,首先通过add_library()函数生成动态库mylib,然后在target_link_libraries()函数中添加STATIC参数,表示连接的库为静态库。最后通过install()函数将库文件和头文件安装到指定位置。
希望这个例子能够帮助你理解生成动态库和使用target_link_libraries()函数的相关知识。如果还有其他的问题,欢迎继续提问。
相关问题
target_link_libraries() 函数中,添加STATIC ,给出经典列子
好的,我明白了。关于 target_link_libraries() 函数,当添加 STATIC 后,表示链接静态库。以下是一个简单的示例:
```
add_library(mylib STATIC mylib.cpp) # 生成静态库
add_executable(myapp main.cpp) # 生成可执行文件
target_link_libraries(myapp mylib) # 链接静态库
```
在以上示例中,首先通过 add_library() 函数生成了名为mylib的静态库,然后通过 add_executable() 函数生成了名为myapp的可执行文件,在链接可执行文件时,通过 target_link_libraries() 函数链接了mylib静态库。
如何使用target_link_libraries()函数指定链接库?
target_link_libraries()函数用于将目标(target)与指定的库进行链接。它的使用方式可以有多种形式,具体取决于你想要链接的库的数量和链接方式。
以下是两种常见的使用方式:
1. 使用单个库进行链接:
```cmake
target_link_libraries(target_name library_name)
```
这种方式将目标(target_name)与库(library_name)进行链接。
2. 使用多个库进行链接:
```cmake
target_link_libraries(target_name library1 library2 ...)
```
这种方式将目标(target_name)与多个库(library1, library2, ...)进行链接。
在上述两种方式中,你还可以使用PRIVATE、PUBLIC或INTERFACE关键字来指定链接的属性。这些关键字的作用如下:
- PRIVATE:链接库仅对当前目标(target)可见。
- PUBLIC:链接库对当前目标(target)及其依赖目标可见。
- INTERFACE:链接库仅对依赖当前目标(target)的目标可见。
下面是一个示例,演示了如何使用target_link_libraries()函数指定链接库:
```cmake
# CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 添加可执行目标
add_executable(my_target main.cpp)
# 链接库
target_link_libraries(my_target PRIVATE my_library)
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)