Cmake 怎么设置生成动态库 还是静态库
时间: 2024-01-02 08:31:17 浏览: 38
在CMake中,你可以使用add_library命令来设置生成动态库或静态库。add_library命令用于创建一个新的库目标,并指定库的类型。
要生成动态库,可以将add_library命令的第一个参数设置为库的名称,然后将第二个参数设置为SHARED。例如:
```cmake
add_library(mylib SHARED source1.cpp source2.cpp)
```
上面的例子中,我们创建了一个名为mylib的动态库目标,并将源文件source1.cpp和source2.cpp添加到该目标中。生成的动态库文件将具有与平台相关的扩展名(如.so、.dll或.dylib)。
要生成静态库,可以将add_library命令的第一个参数设置为库的名称,然后将第二个参数设置为STATIC。例如:
```cmake
add_library(mylib STATIC source1.cpp source2.cpp)
```
上面的例子中,我们创建了一个名为mylib的静态库目标,并将源文件source1.cpp和source2.cpp添加到该目标中。生成的静态库文件将具有与平台相关的扩展名(如.a、.lib或.a)。
默认情况下,CMake将根据操作系统和构建配置(如Release或Debug)来决定使用动态库还是静态库。但你也可以使用set_target_properties命令来显式地指定目标生成的库类型。例如:
```cmake
set_target_properties(mylib PROPERTIES LINKER_LANGUAGE CXX)
```
上面的例子中,我们将目标mylib的链接器语言设置为C++,这将影响生成的库的类型。
总之,通过在add_library命令中使用SHARED或STATIC作为第二个参数,可以设置生成动态库或静态库。你也可以使用set_target_properties命令来显式指定库的类型。