变量与条件
项目要链接第三方库(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