【问题标题】:installing a cmake target in two different folders在两个不同的文件夹中安装 cmake 目标
【发布时间】:2015-03-09 14:15:28
【问题描述】:

我的源代码树包括几个可执行文件和共享库 (dll)。我想更改我的 cmakelists.txt 文件,以便将可执行文件安装在安装程序系统上的多个目标文件夹中。

源代码树

  Editor
    Editor.cpp
    CMakeLists.txt
  Game
    Game.cpp
    CMakeLists.txt
  SharedLib
    SharedLib.cpp
    CMakeLists.txt

所需的安装目录结构

Editor/
  MyEditor.exe
  MySharedLib.dll

Game/
  MyGame.exe
  MySharedLib.dll

目前我使用安装(TARGET MySharedLib RUNTIME DESTINATION Editor),但我还需要第二次安装 MySharedLib 并进入游戏目录。

我怎样才能做到这一点?

【问题讨论】:

  • official CMake documentation中给出了一个非常相似的例子。
  • 谢谢。但是,我不明白这将如何工作。因为当目标不在同一目录中时 install() 失败。我试图将行 install(TARGETS MySharedLib RUNTIME DESTINATION Game) 放在 Game/CMakeLists.txt 中,但失败并出现错误: install TARGETS given target "MySharedLib " which does not exist in this directory.
  • 您需要将install(TARGETS) 命令放入定义目标的 CMakeLists.tx 文件中。但是您可以使用多个install() 命令将每个目标安装到任意数量的目的地。

标签: cmake


【解决方案1】:

可以通过多次调用 install() 为 cmake 目标指定多个安装位置 (http://www.cmake.org/cmake/help/v3.2/command/install.html#installing-targets)。

但是这个调用只能发生在目标目录的 cmakelists.txt 文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-07
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    相关资源
    最近更新 更多