add_library
时间: 2023-06-22 17:19:25 浏览: 126
`add_library` 是 CMake 中的一个命令,用于将源文件编译成库文件。它的语法如下:
```
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL]
source1 [source2 ...])
```
其中,`<name>` 是库的名称,`STATIC`、`SHARED`、`MODULE` 分别表示静态库、共享库和动态库,`EXCLUDE_FROM_ALL` 表示不包含在默认的构建目标中,`source1`、`source2` 等是源文件的列表。
例如,下面的命令将源文件 `foo.c` 和 `bar.c` 编译成一个静态库 `mylib`:
```
add_library(mylib STATIC foo.c bar.c)
```
执行这个命令后,会在当前目录下生成一个名为 `libmylib.a` 的静态库文件。
相关问题
ADD_LIBRARY
ADD_LIBRARY 是 CMake 中的一个命令,用于向项目中添加一个库文件。它的语法为:ADD_LIBRARY(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 [source2 ...])。其中,name 是库文件的名称,STATIC、SHARED、MODULE 分别表示静态库、动态库和模块库,source1、source2 等是库文件的源代码文件。
add_library find_library target_link_libraries
add_library是CMake中的一个指令,用于将源文件编译成库文件。它的语法如下:
```cmake
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL]
source1 [source2 ...])
```
其中,name是库文件的名称,可以是任意字符串;STATIC、SHARED和MODULE是可选参数,用于指定库文件的类型,默认为STATIC;EXCLUDE_FROM_ALL是可选参数,用于指定该库文件是否被包含在ALL选项中,默认为不包含;source1、source2等是源文件的路径。
find_library是CMake中的一个指令,用于查找指定的库文件。它的语法如下:
```cmake
find_library(<VAR> name1 [path1 path2 ...])
```
其中,VAR是一个变量,用于存储找到的库文件的路径;name1是要查找的库文件的名称;path1、path2等是可选参数,用于指定查找库文件的路径。
target_link_libraries是CMake中的一个指令,用于将目标文件与库文件进行链接。它的语法如下:
```cmake
target_link_libraries(<target> [item1] [item2] [...])
```
其中,target是通过add_executable()和add_library()指令生成的目标文件;item1、item2等是要链接的库文件的名称。
以下是一个示例,演示了如何使用add_library、find_library和target_link_libraries指令:
```cmake
# 添加一个名为mylib的库文件
add_library(mylib SHARED mylib.cpp)
# 查找名为mylib的库文件
find_library(MYLIB_LIB mylib)
# 添加一个名为myapp的可执行文件,并将其与mylib库文件进行链接
add_executable(myapp main.cpp)
target_link_libraries(myapp ${MYLIB_LIB})
```
阅读全文