一、下载安装VS 2019
进入官网,选择community版本下载
打开安装器,勾选使用 C++ 的桌面开发
和使用 C++ 的 Linux 开发
,安装目录可以更改
二、安装wsl2
先决条件
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 如果使用的是更早的版本,请参阅手动安装页。
BIOS开启CPU虚拟化。
2.1 安装 WSL(新方法)
在管理员模式下打开 PowerShell,输入 wsl --install 命令,然后重启计算机。
wsl --install
此命令将启用运行 WSL 并将Ubuntu安装为默认发行版。 (可以更改此默认发行版)。
重新启动计算机,打开默认安装的Ubuntu-22.04
,根据提示逐步设置用户名和密码。
2.2 安装 Windows 终端(推荐)
参考搭建优雅的Windows终端,只需要执行其中的一、二、4.2
配置完成后,在管理员模式下打开 Windows terminal 或者 PowerShell,执行以下命令,升级WSL。
wsl --update
wsl --shutdown
2.3 更换清华大学源
打开Windows终端,下拉选择Ubuntu-22.04进入wsl
手动替换
sudo nano /etc/apt/sources.list
打开Ubuntu 的软件源配置文件,将里面的内容全部删除,替换为以下内容:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
命令替换
执行如下命令自动替换
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
更新软件源,安装必要工具
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git ca-certificates build-essential net-tools -y
sudo apt install g++ gdb make ninja-build rsync zip -y
sudo apt install openssh-server -y
2.4 WSL ssh 配置
老样子,打开Windows终端,下拉选择Ubuntu-22.04进入wsl
- 重新安装openssh-server
sudo apt purge openssh-server
sudo apt install openssh-server
- 关闭终端。在管理员模式下重新打开一个 Windows terminal
wsl --shutdown
- 重新进入wsl,重启SSH服务
sudo service ssh restart
sudo service ssh status
sudo systemctl enable ssh
- 在Ubuntu中查看WSL2的ip(默认为浮动IP,每次重启Ubuntu后改变)
ifconfig
然后可以在Windows terminal中SSH该IP进行登陆。
ssh [用户名]@[ip]
固定WSL IP
每次重新启动WSL时,Ubuntu子系统会变化,为了能使用固定IP进行ssh连接,可以配置以下脚本,保存为bat格式:
@echo off
setlocal enabledelayedexpansion
wsl --shutdown
wsl -u root service ssh start | findstr "sshd" > nul
if !errorlevel! equ 0 (
echo ssh start success
wsl -u root ip addr | findstr "172.27.159.210" > nul
if !errorlevel! equ 0 (
echo wsl ip has set
) else (
wsl -u root ip addr add 172.27.159.210/20 broadcast 172.27.159.255 dev eth0 label eth0:1
echo set wsl ip success: 172.27.159.210
)
ipconfig | findstr "172.27.159.1" > nul
if !errorlevel! equ 0 (
echo windows ip has set
) else (
netsh interface ip add address "vEthernet (WSL)" 172.27.159.1 255.255.240.0
echo set windows ip success: 172.27.159.1
)
)
pause
为该脚本创建快捷方式,右键该快捷方式的属性>快捷方式>高级,勾选用管理员身份运行
下次需要启动Ubuntu WSL2时,先启动该脚本即可。
三、基于 WSL 2 和 MSBuild 的 Linux 项目
3.1 创建项目
打开Visual Studio 2019,创建新项目—选择 C++ Linux 控制台应用程序—填写项目和解决方案名称、选择项目保存目录,完成创建
3.2 配置跨平台
VS2019——工具——选项
跨平台——连接管理器——添加,填写WSL IP、用户名、密码。点击连接,接受保存指纹。
如果无法连接,就关闭wsl,再启动固定WSL IP的脚本
可以看到Debug已经出现了WSL 的IP
3.3 生成项目
按 F7 或者 生成——生成解决方案,可以看到已经成功生成了解决方案