添加使用 CMake 的库的 CMake 工作流程

标签 cmake

#include "somelib/some.h"

int main(){}

我有一个 3rd 方库,其结构相当困惑,但它使用 CMake。我如何将该库添加到我的项目中,以便我可以像上面所写的那样使用它?

我必须自己手动构建和移动每个文件还是有快捷方式?

类似的东西

mkdir lib
mv path/somelib lib

在我的 CMakeLists.txt 中我可以添加类似的内容

ADD_CMAKE_LIB(${CMAKE_BINARY_DIR}/lib/somelib)

一切都会神奇地发挥作用吗?

最佳答案

您可以使用以下选项之一:

  1. 从您的项目中构建第 3 方库,将其安装在任何位置并编写您自己的库,例如,在项目中使用 FindMessyLib.cmake 来搜索特定 header 和库
  2. 在源代码管理下添加 /ext/yourmessylib 并使用 add_subdirectory (ext/yourmessylib) 位于顶级 CMakeLists.txt 项目文件中
  3. 使用ExternalProject_Add 。示例可见here .

就我个人而言,我更喜欢第二种方法与git子模块相结合。如果不使用 git - 我会投票给第三。

关于添加使用 CMake 的库的 CMake 工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25382890/

相关文章:

cmake - 在哪里设置 ExternalProject 属性?

c++ - 使用 cmake ‘undefined reference to’

build - 对 `gcry_check_version' 的 undefined reference ,怎么了?

c++ - 使用 Visual Studio 2015 x64 和 CMake 构建 TBB

c++ - Cmake添加没有源文件的目录

android - 如何在android中执行多个CMakeLists.txt文件

c++ - 编译器找不到jpeg和png库

android - 使用 Android CMake build设置 ABI 目标

CMake:多个目标使用相同的源文件

c++ - Cmake 中的 Boost 文件系统版本错误