cmake 链接静态库
时间: 2023-05-30 21:07:43 浏览: 691
可以通过以下步骤链接静态库:
1. 编写 CMakeLists.txt 文件,指定要编译的源代码文件和要链接的库文件。
```
cmake_minimum_required(VERSION 3.0)
project(my_project)
# 指定要编译的源代码文件
add_executable(my_executable main.cpp)
# 指定要链接的库文件
target_link_libraries(my_executable my_library)
```
2. 编译项目。
```
cmake .
make
```
3. 运行可执行文件。
```
./my_executable
```
相关问题
cmake 生成静态库时如何链接其他静态库
在 CMake 中生成静态库时,可以通过 `target_link_libraries` 命令来链接其他静态库。该命令的语法如下:
```cmake
target_link_libraries(target-name lib1 lib2 ...)
```
其中 `target-name` 表示生成的目标的名称,`lib1`、`lib2` 等表示需要链接的其他静态库的名称。
例如,在生成名为 `mylib` 的静态库时需要链接 `lib1.a` 和 `lib2.a`,可以在 CMakeLists.txt 文件中添加以下代码:
```cmake
add_library(mylib STATIC mylib.cpp)
target_link_libraries(mylib lib1 lib2)
```
注意,链接其他静态库时需要指定正确的库名称和路径,否则可能会链接失败。可以通过 `find_library` 命令来查找库的路径,例如:
```cmake
find_library(LIB1_PATH lib1.a PATHS /path/to/lib1)
find_library(LIB2_PATH lib2.a PATHS /path/to/lib2)
add_library(mylib STATIC mylib.cpp)
target_link_libraries(mylib ${LIB1_PATH} ${LIB2_PATH})
```
cmake 编译静态库
在使用CMake编译静态库时,可以使用add_library函数来定义库的名称和源文件。在add_library函数中,可以通过第二个参数来指定库的类型,使用STATIC表示静态库。例如,使用add_library(xlog STATIC xlog.cpp)可以编译一个名为xlog的静态库。\[2\]然后,使用CMake的外部构建方法,可以在build/lib目录中生成静态库libadd.a。首先创建一个build目录,然后进入该目录,运行cmake命令来生成构建文件,最后使用make命令进行编译。具体的命令如下所示:
$ mkdir build
$ cd build
$ cmake ..
$ make\[3\]
#### 引用[.reference_title]
- *1* [CMake构建静态库与动态库以及使用](https://blog.csdn.net/Long_xu/article/details/129139244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [cmake add_library编译链接静态库cmakelists](https://blog.csdn.net/jiedichina/article/details/126687785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [CMake 学习四:CMake 构建静态库和动态库](https://blog.csdn.net/myw31415926/article/details/128508447)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文