常用语法记录

如何将一份源码编译成库并链接

添加库

以json11为例

add_library(json11 STATIC
    json11/json11.cpp
)
target_include_directories(json11 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/json11)

add_library表示会将其编译为一个库文件,而STATIC则表示编译为静态链接库,如果换成SHARED则表示编译为动态链接库。

include_directories代表了全局引入的附加包含目录,用于添加搜索头文件的目录。相对的,target_include_directories代表了让某个target单独添加附加包含目录。