我的项目结构如下,我想使用 ext 到 inc 上的库派生我的类>文件夹,并在 main.cpp 上使用它们。 CMakeLists.txt 的框架应该是什么样的?
.
├── CMakeLists.txt
├── ext
│ ├── abseil-cpp
│ └── SDL2-2.0.9
├── inc
├── src
└── main.cpp
答案 0 :(得分:1)
如果要将库构建为项目的一部分,是的,只要外部库基于Cmake并且您为项目适当修改了它们的Cmake文件,该库就可以工作。
但是,CMake有一个名为ExternalProject
的模块,旨在帮助您管理第三方依赖性。您可以在at this website上找到相当详尽的文字。 ExternalProject
包含创建自定义目标以驱动外部项目的下载,更新/补丁,配置,构建,安装和测试步骤所需的一切。
还有其他选择,我更喜欢使用预先构建的库来减少构建时间。 (CI服务花费的时间更少,成本更低),所以我很喜欢Conan,它是一种开源,去中心化和多平台的 包管理器,最常用于C ++。它还具有出色的Cmake integration,因此非常适合我的工作流程。