如何将外部库与 CMake 一起使用

How to use external libraries with CMake?

本文关键字:CMake 一起 外部      更新时间:2023-10-16

我的项目结构看起来像这样,我想使用 ext 上的库派生我的类到 inc 文件夹并在 main.cpp 上使用它们。CMakeLists.txt的骨架应该是什么样子的?

.
├── CMakeLists.txt
├── ext
│   ├── abseil-cpp
│   └── SDL2-2.0.9
├── inc
├── src
└── main.cpp

如果您想将库构建为项目的一部分,是的,只要外部库基于 Cmake 并且您针对您的项目适当地修改其 Cmake 文件,就可以工作。

但是,CMake 有一个名为 ExternalProject 的模块,旨在帮助您管理第三方依赖项。您可以在此网站上找到有关它的非常详尽的文章。 ExternalProject包含创建自定义目标以驱动外部项目的下载、更新/修补、配置、构建、安装和测试步骤所需的一切。

还有其他选择,我更喜欢使用预构建的库来减少构建时间。(CI 服务的运行时间越短,成本就越低)所以我越来越喜欢柯南,一个开源的、去中心化的、多平台的。包管理器最常用于C++。它还具有出色的Cmake集成,因此非常适合我的工作流程。