一、add_library与target_link_libraries
add_library(libname [SHARED | STATIC | MODULE] [EXCLUDE_FROM_ALL] SRC_LIST)
生成动态库或静态库
SHARED 动态库
STATIC 静态库
MODULE 在使用dyld的系统有效,若不支持dyld,等同于SHARED
EXCLUDE_FROM_ALL 表示该库不会被默认构建
另外BUILD_SHARED_LIBS也可控制编译成哪种库。
target_link_libraries用来链接库,用法如下:
target_link_libraries(<target> [item1 [item2 [...]]] [[debug|optimized|general] <item>] ...)
二、创建库工程
创建库工程跟创建可执行程序工程类似,创建库工程使用add_library函数,如下例子
cmake_minimum_required (VERSION 3.0)
project (LearnCMake)
add_library(FirstLibrary first_library.cpp)
add_executable(FirstExecutable hello_world.cpp)
target_link_libraries(FirstExecutable FirstLibrary)