cmake 图书馆

例子

要创建创建库的构建目标,请使用以下add_library命令:

add_library(my_lib lib.cpp)

CMake 变量BUILD_SHARED_LIBS控制何时构建静态 ( OFF) 或共享 ( ON) 库,例如使用cmake .. -DBUILD_SHARED_LIBS=ON. 但是,您可以通过添加STATIC或SHARED在目标名称之后显式设置构建共享或静态库:

add_library(my_shared_lib SHARED lib.cpp) # Builds an shared library
add_library(my_static_lib STATIC lib.cpp) # Builds an static library

实际输出文件因系统而异。例如,Unix 系统上的共享库通常称为libmy_shared_library.so,但在 Windows 上则是my_shared_library.dll和my_shared_library.lib。

像add_executable,EXCLUDE_FROM_ALL在源文件列表之前添加以将其从all目标中排除:

add_library(my_lib EXCLUDE_FROM_ALL lib.cpp)

设计为在运行时加载的库(例如使用类似 的插件或应用程序dlopen),应使用/MODULE代替:SHAREDSTATIC

add_library(my_module_lib MODULE lib.cpp)

例如,在 Windows 上,不会有导入 ( .lib) 文件,因为符号是直接导出到.dll.