如何在CMake中使用外部库?

时间:2018-12-29 20:26:47

标签: c++ cmake

我的项目结构如下,我想使用 ext inc 上的库派生我的类>文件夹,并在 main.cpp 上使用它们。 CMakeLists.txt 的框架应该是什么样的?

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

1 个答案:

答案 0 :(得分:1)

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

但是,CMake有一个名为ExternalProject的模块,旨在帮助您管理第三方依赖性。您可以在at this website上找到相当详尽的文字。 ExternalProject包含创建自定义目标以驱动外部项目的下载,更新/补丁,配置,构建,安装和测试步骤所需的一切。

还有其他选择,我更喜欢使用预先构建的库来减少构建时间。 (CI服务花费的时间更少,成本更低),所以我很喜欢Conan,它是一种开源,去中心化和多平台的 包管理器,最常用于C ++。它还具有出色的Cmake integration,因此非常适合我的工作流程。