否(除了下面所示的技巧),您在执行时只能使用自己的 CMake 版本使用 CMake 进行 Linux 开发的 Visual C++ https://blogs.msdn.microsoft.com/vcblog/2017/08/25/visual-c-for-linux-development-with-cmake/在远程机器上CMakeSettings.json
像这样:
{
"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 仅适用于远程计算机 https://blogs.msdn.microsoft.com/vcblog/2017/08/25/visual-c-for-linux-development-with-cmake/
一些背景信息
正如 @usr1234567 的答案一样,Visual Studio 2017 使用 - 从版本 15.6.1 开始 - 它是 CMake 自己的分支:
- https://github.com/Microsoft/CMake/tree/cmake-daemon 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 的主分支:
- 问题 #16998:Visual Studio 2017:将 Microsoft cmake-daemon 分支合并到 master https://gitlab.kitware.com/cmake/cmake/issues/16998
编辑:可能的解决方法
一个简短的测试表明,我可以通过对 Visual Studio 的 CMake 文件夹进行简单的重命名并将其替换为指向系统安装的 CMake 版本的符号链接(来自cmd
具有管理权限的提示):
> 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"
...
Warning:在更新 Visual Studio 2017 之前,您必须撤消此操作。否则 VS2017 udpate 进程将替换/覆盖您原来的 CMake 安装。