gpt4 book ai didi

cmake - 在 Visual Studio 2017 中使用已安装的 CMake 而不是嵌入的 CMake

转载 作者:行者123 更新时间:2023-12-04 19:28:22 35 4
gpt4 key购买 nike

我有一个 CMake 项目。它使用实际安装的 CMake 版本 (3.11.0 rc2) 中支持的最新版本 Boost (1.66.0),但在之前的版本 (3.10.0) 中不支持。

如果我从命令行使用 CMake 构建它,一切正常,但如果我在 Visual Studio 2017 中打开文件夹,我会收到错误消息,因为 Visual Studio 使用的 CMake 安装不是我的,而是嵌入在它的安装中:输出面板完整的 cmake 命令路径是 C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe ,这不是我安装的版本,它也是以前的版本(3.10.0)所以项目它不会编译。

有没有办法告诉 Visual Studio 使用我的 CMake 安装而不是它的安装?

最佳答案

不可以(除了下面显示的技巧),在远程机器上使用 CMakeSettings.json 执行 Visual C++ for Linux Development with CMake 时,您只能使用自己的 CMake 版本,如下所示:

{
"name": "Linux-Debug",
"generator": "Unix Makefiles",
"remoteMachineName": "${defaultRemoteMachineName}",
"configurationType": "Debug",
"remoteCMakeListsRoot": "/var/tmp/src/${workspaceHash}/${name}",
"cmakeExecutable": "/usr/local/bin/cmake",
"buildRoot": "${env.LOCALAPPDATA}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"remoteBuildRoot": "/var/tmp/build/${workspaceHash}/build/${name}",
"remoteCopySources": true,
"remoteCopySourcesOutputVerbosity": "Normal",
"remoteCopySourcesConcurrentCopies": "10",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "linux-x64" ]
}


但是您可以更一般地使用 cmakeExecutable 属性来支持功能请求:
  • CMakeSettings.json: cmakeExecutable only working for remote machines

  • 一些背景资料

    与@usr1234567 的答案一样,Visual Studio 2017 使用 - 从版本 15.6.1 开始 - 它是 CMake 自己的分支:
  • https://github.com/Microsoft/CMake/tree/cmake-daemon

  • Visual Studio 2017 附带的版本不是您可以看到调用的官方版本:
    > "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake" --version
    cmake version 3.10.18011902-MSVC_2

    所以我不确定官方 CMake 版本是否会很好/完全集成到 Visual Studio 2017 中。但是已经有将 Microsoft 特定更改合并回 CMake 主分支的请求:
  • Issue #16998: Visual Studio 2017: merge Microsoft cmake-daemon branch to master

  • 编辑:可能的解决方法

    一个简短的测试表明,我可以通过对 Visual Studio 的 CMake 文件夹进行简单的重命名并将其替换为指向系统安装的 CMake 版本的符号链接(symbolic link)(来自具有管理权限的 cmd 提示符)来欺骗 Visual Studio 获取您安装的版本:
    > ren "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake" _CMake
    ...
    > mklink /d "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake" "C:\Program Files\CMake"
    ...

    警告: 在更新 Visual Studio 2017 之前,您必须撤消此操作。否则 VS2017 更新过程将替换/覆盖您的原始 CMake 安装。

    关于cmake - 在 Visual Studio 2017 中使用已安装的 CMake 而不是嵌入的 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221297/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com