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.