【问题标题】:Can CMakeList.txt specify dependencies that will be installed before compiling the source?CMakeList.txt 可以指定在编译源代码之前将安装的依赖项吗?
【发布时间】:2019-10-05 14:47:30
【问题描述】:

CMakeList.txt 是否可以在编译源代码之前指定将要安装的项目的依赖项?

我的项目依赖于第三方库 L。我希望 CMake 强制在编译项目之前正确安装 L。

我注意到CMake网站上有一个安装命令:https://cmake.org/cmake/help/v3.13/command/install.html,但似乎是关于如何安装项目本身。

我是 CMake 的新手。

【问题讨论】:

  • 示例您的意图将非常有助于了解您的需求。
  • 您的问题有点不清楚:您是否希望 CMake 在为您的项目生成构建系统之前安装第三方库或应用程序? install 命令通常用于在编译源代码并完成构建后安装 your 项目及其依赖项。您能否提供一个简单的示例来更好地说明您的要求?
  • 谢谢。上面提供了一个小例子。查看我的编辑。
  • “我希望 CMake 强制正确安装 L” - 如果“强制”是指“检查”,则使用 find_library 进行检查图书馆的存在。如果您不想“检查”而是“安装”,请使用 execute_processadd_custom_command/add_custom_target 和适当的 COMMAND 选项。

标签: cmake


【解决方案1】:

CMake 无法为您安装下载的外部依赖项的二进制包。当使用find_package(... REQUIRED ...) 找不到所需的库时,CMake 唯一能做的就是在生成步骤中失败。 要自动检索依赖项,您必须使用包管理器。与 C++ 最相关的三个是

我目前使用 Hunter,但主要开发人员刚刚从该项目中退休,目前尚不清楚进一步开发的活跃程度。

【讨论】:

    猜你喜欢
    • 2020-10-31
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2011-08-13
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多