c++ - Visual Studio CMake 项目和 WSL 中的源同步
问题描述
我有一个很大的解决方案,其中一部分项目是经典的 Visual C++ 项目,另一部分是 CMake 类型的项目。以前我在虚拟机上使用 Windows 7 + VS 2017 + Ubuntu,在开始为 linux 构建 CMake 项目之前,VS 启动 rsync 用于 PC 和虚拟机之间的同步源。为此,我在 CMakeSettings.json 文件中创建了下一条规则:
{
"name": "Linux-Debug",
"generator": "Unix Makefiles",
"remoteMachineName": "${defaultRemoteMachineName}",
"configurationType": "Debug",
"remoteCMakeListsRoot": "/var/tmp/src/Solution_dir/",
"cmakeExecutable": "/usr/bin/cmake",
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
"remoteBuildRoot": "/var/tmp/Solution_dir/build/x86_64_debug_unix",
"remoteInstallRoot": "/var/tmp/Solution_dir/install/x86_64_release_unix",
"remoteCopySources": true,
"remoteCopySourcesOutputVerbosity": "Normal",
"remoteCopySourcesConcurrentCopies": "10",
"remoteCopySourcesMethod": "rsync",
"remoteCopyBuildOutput": false,
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "linux_x64" ],
"remoteCopySourcesExclusionList": [ "Debug", "Release", ".intermediate", ".vs", "Setup" ]
}
现在我已经安装了 Windows 10 Pro 和 WSL。默认情况下,WSL 已经挂载了我的本地驱动器(如 /mnt/c、/mnt/d),我认为复制源代码文件夹没有任何意义。但是,如果我将remoteCMakeListsRoot属性更改为“/mnt/d/Solution_dir”,VS 将启动 rsync,这将删除我的 .git 文件夹和remoteCopySourcesExclusionList属性中的所有文件夹。如果我要从 CMakeSettings.json 中删除remoteCopySourcesExclusionList属性,rsync 无论如何都会删除 .git 文件夹。
从 Visual Studio 使用 WSL 的真正方法是什么?我怎么能对 VS 说不需要启动 rsync?
解决方案
推荐阅读
- keras - Keras custom loss as a function of multiple outputs
- node.js - Chakram test not working
- cuda - 不推荐使用 nvcc 动态异常规范
- android - Firebase 慢速图像读取
- android - RTL反应原生抽屉问题android
- android - Android Studio:尝试第二次启动应用程序时失败
- vim - gVim 转义键在 Windows 10 上不起作用
- c# - 为 RestSharp oauth1.0 C# 生成 hmacsha1 签名(无令牌)
- c++14 - program that converts spelled out numbers in to its digit form. (c++)
- php - 找不到类“LaravelLocalization”