首页 > 系统相关 >Windows下使用Visual Studio + WSL2开发Linux项目之环境部署

Windows下使用Visual Studio + WSL2开发Linux项目之环境部署

时间:2023-02-20 02:33:05浏览次数:71  
标签:cn Linux Windows sudo Visual ssh edu ubuntu

一、下载安装Visual Studio

1.1 下载地址

推荐下载Visual Studio 2022 预览版,64位架构,速度更快

1.2 安装C++项目工具集

打开安装器,勾选使用 C++ 的桌面开发使用 C++ 的 Linux 开发,安装目录可以更改

二、安装wsl2

先决条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 如果使用的是更早的版本,请参阅手动安装页
BIOS开启CPU虚拟化。

2.1 安装 WSL

  • 从微软商店获取Ubuntu 22.04.2 LTS
  • 在管理员模式下打开 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

方法1:手动替换

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

方法2:命令替换

执行如下命令自动替换

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

2.4 WSL ssh 配置

老样子,打开Windows终端,下拉选择Ubuntu-22.04进入wsl

  • 重新安装openssh-server
sudo apt remove openssh-server
sudo apt install openssh-server -y
sudo service ssh start
sudo service ssh status
sudo systemctl enable ssh
  • 在Ubuntu中查看WSL2的ip(默认为浮动IP,每次重启Ubuntu后改变)
ifconfig

然后可以在Windows terminal中SSH该IP进行登陆。

ssh [用户名]@[ip]

固定WSL IP

为了方便 Visual Studio 通过 ssh 连接 WSL 编译项目,需要固定WSL IP。这里采用端口转发的方法迂回完成此目标。

  • 打开Ubuntu22.04,编辑ssh配置文件 /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
  • 添加以下两行内容,用于更改端口号为2000,允许ssh密码登录权限
Port 2000
PasswordAuthentication yes

  • 防火墙允许2000端口

  • 重启ssh服务和防火墙

sudo service ssh restart
sudo ufw reload
  • 管理员模式下打开 Windows terminal或powershell,配置端口转换
netsh interface portproxy add v4tov4 listenport=2100 listenaddress=0.0.0.0 connectport=2000 connectaddress=localhost

之后本机就可以通过ssh [用户名]@127.0.0.1 -p 2100来连接WSL啦

三、基于 WSL 2 和 MSBuild 的 Linux 项目

3.1 创建项目

打开Visual Studio,创建新项目—选择 C++ Linux 控制台应用程序—填写项目和解决方案名称、选择项目保存目录,完成创建

3.2 配置跨平台

工具——选项

跨平台——连接管理器——添加,填写WSL IP、用户名、密码。点击连接,接受保存指纹。

可以看到Debug已经出现了WSL 的连接

3.3 生成项目

项目属性——常规——平台工具集,选择WSL2 GCC Toolset,点击确定返回。

VS2019没有WSL2 GCC Toolset,则选择GCC for Windows Subsystem for Linux工具集

按 F7 或者 生成——生成解决方案,可以看到已经成功生成了解决方案

点击GDB调试程序,运行项目,Linux控制台会输出问好。

标签:cn,Linux,Windows,sudo,Visual,ssh,edu,ubuntu
From: https://www.cnblogs.com/leebri/p/17136064.html

相关文章

  • linux mysql
    mysql-uroot-p;mysql>createdatabaseghost;mysql>showdatabases;mysql>exitmysql>selectuser();//查看当前登录的用户mysql>showglobalvariableslik......
  • Linux - fdisk 使用方法
    对2T以下磁盘分区1-4为主分区和扩展分区,5以后为逻辑分区1、fdisk参数m显示命令列表l查看磁盘详细信息p显示磁盘分区n新增分区d删除分区w写入并即出2、使......
  • linux驱动移植-I2C驱动移植(OLED SSD1306/AT24C08)
    在这一节将会介绍S3C2440I2C适配器的注册,以及AT24C08、SSD1606OLEDI2C设备驱动的编写。一、I2C适配器注册在Mini2440裸机开发之I2C(AT24C08)我们介绍了S3C2440这款SOC的......
  • Windows黑客编程之APC注入
    描述获取目标进程的每一个线程,向APC队列中插入LoadLibrary函数,配合dll路径参数,可以实现在目标进程中注入dll准备知识APC注入每个线程都有自己的APC队列,当线程挂起进......
  • Windows黑客编程之远线程注入
    描述通过在进程中创建线程的方式,将dll注入到目标进程准备知识远线程注入的原理在目标进程空间内申请一段内存,写入dll的路径,然后利用ZwCreateThreadEx函数在目标进程......
  • linux 下装 mono,使apache 运行 asp.net
    1.更新系统  yumupdate  2.安装必要的相关库  yuminstallgccgcc-c++bisonpkgconfigglib2-develgettextmakelibpng-devellibjpeg-devellibtiff-develli......
  • Linux tar 命令
    转的,给自己看,省的到处googlelinux解压tar命令tar[-cxtzjvfpPN]文件与目录....参数:-c:建立一个压缩文件的参数指令(create的意思);-x:解开一个压缩文件的参数指令!-t:查看......
  • Windows黑客编程之全局钩子
    描述通过全局钩子监听windows消息,消息发生时,系统会将包含钩子回调函数的dll注入到所有进程中准备知识利用全局钩子进行dll注入windows的钩子机制用于监听系统消息并......
  • 解决 Linux 安装 httpd局域网无法访问
    yuminstallhttpd局域网无法访问,但本机是好的。vim/etc/httpd/conf/httpd.confAllowfromall也是正常的。折腾了1个小时,原来是防火墙关了。vim/etc/sysconfig/iptab......
  • Linux基础 - 服务管理 supervisor自启动问题
     一、 supervisor 自启动问题1.1Supervisor自启动导致无法使用环境变量编写systemd文件,使用systemd启动。在supervisord.conf配置文件中使用/etc/profile中的环境......