变量与条件

CMake 教程 · 第 5 章 · 7 次浏览

项目要链接第三方库(OpenSSL、JSON、数据库驱动等),CMake 用 find_package 找系统里已安装的库。

find_package

find_package(库名 REQUIRED) 找到后,用 库名::库名 这种 imported target 链接。找不到会报错(去掉 REQUIRED 就不报,自己处理)。

常见库

OpenSSL、ZLIB、Threads(线程)、CURL、JSONCPP。找不到时检查库是否安装、路径对不对。

代码示例

# CMakeLists.txt 使用第三方库
cmake_minimum_required(VERSION 3.10)
project(NetApp CXX)

find_package(OpenSSL REQUIRED)
find_package(Threads REQUIRED)

add_executable(app main.cpp)

target_link_libraries(app PRIVATE
    OpenSSL::SSL
    OpenSSL::Crypto
    Threads::Threads
)

# 如果系统装了库但找不到:
# 用 -D 指定路径
# cmake .. -DOPENSSL_ROOT_DIR=/usr/local/ssl