【问题标题】:CMake "--target install" without "--build" command line没有“--build”命令行的CMake“--target install”
【发布时间】:2018-10-25 15:35:26
【问题描述】:

对于你们中的一些人来说,这可能是一个愚蠢的问题,但是在使用 VS 生成器时是否可以调用 cmake --target install 命令选项而不必指定 --build

我正在处理一个有时我不想总是指定构建的库项目,即:

cmake --build . --target install

我猜 cmake 会强制我们按此顺序执行以避免错误,但是如果我的项目已经构建并且我不希望 cmake 重新检查我的项目构建并安装怎么办?就像我们可以使用 jom installnmake install 等一样。
这行不通:

cmake --target install

cmake . --target install

提前感谢您的回答! :)

【问题讨论】:

    标签: c++ makefile cmake


    【解决方案1】:

    对于 cmake,版本 >= 3.15,您现在可以使用 --install 标志完全满足您的需求。 flag 必须是第一个,见相关cmake doc。 它在 UNIX 和 Windows(也与 VS 生成器)上运行起来就像一个魅力。 在您的情况下,它将是:

    cmake --install .
    

    注意: 我在 Windows 上构建和安装 VTK-7.1.1 时遇到了一个(可能的)向后兼容性问题,我没有进一步调查:插件处理不正确。 我不知道它是否特定于 VTK 的 cmake 实现。

    【讨论】:

      【解决方案2】:

      安装目标对“Build All”目标的依赖由cmake变量CMAKE_SKIP_INSTALL_ALL_DEPENDENCY的设置控制。

      如果您使用的是基于 Makefile 的生成器,CMake 还会生成一个特殊的安装目标“install/fast”,它在安装之前不会构建。可以通过以下方式调用:

      cmake --build . --target install/fast
      

      【讨论】:

      • 这很有趣!谢谢(你的)信息。但不幸的是,这不是我的情况。我在 windows VS 生成器上使用,它只生成 INSTALL.vcxproj,我没有找到任何 fast.vcxproj。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多