WSL安装Linux 并连接vscode 调试


前言

因为笔者的电脑硬盘坏了😢😢😢😢,电脑里面的虚拟机,包括里面的内容全部都丢了,仅存的固态只有128G,支撑不起几个G甚至两位数的空间,经过网上查资料发现还有一个WSL (Windows Subsystem for Linux)的存在,正好最近也在学Linux的内容,因此,写下本文中,记录自己的安装调试历程。


一、启用WSL并安装Ubuntu

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

1.打开Windows自带的WSL功能

控制面板->程序与功能->启用或关闭Windows功能->适用于Linux的Windows子系统,具体打开方法如图
在这里插入图片描述

2.重启电脑

打开该功能之后需要重启电脑已配置环境。

3.安装Ubuntu20.04

直接在Windows应用商店搜索Ubuntu,里面找到Ubuntu20.04(根据需求选择版本,我这里选择的是20.04),点击获取即可。
在这里插入图片描述

4.操作Linux

因为是一个虚拟的系统,所以说并不存在开机关机的操作。只需要在Windows自带的cmd或者powershell界面输入 bash 命令,即可进入Linux界面进行操作。
在这里插入图片描述
如果进到这一步,恭喜你已经安装完成,第一次进入需要给你的超级用户设置用户名和密码,我这里设置的是 root 和 admin。WSL能够打通Windows和Linux的连接,有很多妙用。

二、利用Linux进行c语言开发

在Linux下进行c语言的开发和Windows下大同小异,都是用编译器对所写的文件进行编译,生成。只不过Windows下的操作都是在IDE里面集成了,对于只使用过 visual studio 20xx 的读者,应该对此感触不深,因为自己没有亲自动手用gcc 或者 g++ 编译过c/c++文件。而使用编辑器 vscode 的读者可能对此有所了解。所以在Linux下进行语言开发首先都要安装编译器。

1.安装编译器

我这里进行的大部分是c/c++的开发,我同时安装了gcc和g++ 编译工具,读者可以选择性安装,因为我是自己学习使用,所以接下来的操作都是在我的超级用户root下操作的。
在已经进入的Linux终端下,输入以下命令进行安装。

# 登录到 root
dong@YYW:/mnt/c/Users/86135$ sudo su root
[sudo] password for dong:
root@YYW:/mnt/c/Users/86135#
#下载 gcc g++ gdb (gdb为调试工具)
#1、首先更新Linux的工具
apt update
#2、等待1结束后,安装gcc、g++、gdb
apt-get install gcc
#3、同2 安装g++ gdb
xxxxx

2.测试编译器

上述安装完成之后,我们验证一下自己的Linux可不可以对c/c++进行编译。
我这里选择新建了一个测试文件。
下面进行测试:

#1、进入 home 目录下 新建一个测试文件夹
cd /home/dong	# 根据自己的目录输入命令
mkdir test_c
cd test_c
#2、使用vim新建测试文件
vim testc.c
# 文件内按 i 进入编辑模式,输入测试代码
#include <stdio.h>
int main(){
    printf("hello world\n");
    return 0;
}
#完成之后 按 esc 键,键入 :wq!  保存文件
#3、编译文件
gcc tesc.c -o testc_exe
# 若编译成功则不会显示任何提示,因为Linux秉持没有提示就是最好的结果
#若编译无问题,自己的文件夹下会产生一个testc_exe的文件
./testc_exe
#输入上述命令执行文件,打印hello world 完美!

#下面是我的运行结果
root@YYW:/home/dong# cd test_c
root@YYW:/home/dong/test_c# vim testc.c
root@YYW:/home/dong/test_c# gcc testc.c -o testc_exe
root@YYW:/home/dong/test_c# ./testc_exe
hello world
root@YYW:/home/dong/test_c#


3.自己体会

读者可以自己试一下自己的g++编译器,测试一下c++的编译。为更好的了解两者的区别,可以使用gcc编译c++风格的文件,看一下效果。🤭🤭🤭

三、vscode连接Ubuntu协同开发

相信有很多读者和我一样不习惯vim的使用,对于很多开发者而言,vim虽然是一款很强大的开发工具,但是也需要相应的学习成本,尤其是想我这样适应Windows系统的人,使用起来比较困难,这里我选择使用vscode帮助我。

1.安装vscode

这里不做赘述,直接官网下载,安装即可。网上教程也一大堆。

2.准备工作

vscode的强大之处,在于它是一款非常轻量级的开发工具,同时它支持各种各样的插件了。以扩展自己的需求,对于c/c++的开发工作,有几个是必须安装的:

1 汉化

chinese simplified
英语好的读者可以选择性忽略

2 c++

在这里插入图片描述
我安装了这两个插件,足够使用了。

3 remote WSL

连接Linux最重要的东西了,下面着重介绍一下。
安装完成此插件之后,在vscode界面键入 Ctrl + Shift + ` (~ 键盘左上角),打开终端,如下图:
在这里插入图片描述
你会发现这里多出来一个你的Linux连接。选择此控制台,界面会变成下面这样
在这里插入图片描述
那么恭喜你,连接成功了,现在这里也相当于你的Linux操作终端了。此时你会发现你的vscode界面的左下角,有一个绿色的连接按钮,点击此按钮会让你选择打开的文件夹,如下图所示:
在这里插入图片描述
这里选择我们上面测试的文件夹。

3.配置vscode 进行开发

进行过vscode的开发过的人都知道一切的操作都是在配置文件内进行的,界接下来我们需要在自己进入的文件夹内,这里我直接进入了我的 /home/dong这个文件加,建议大家也进入这个文件夹。接下来在这个文件夹内新建一个 .vscode文件夹,如果新建失败,大概率是文件权限不够,这样请设置文件夹权限设置为777。具体语法和操作 为chmod 777 文件和 chmod -R 777 /文件夹。

然后在 .vscode 新建三个文件,内容分别为:
文件在我这边是可以用的,如果在读者放有错误,请根据实际需求更改
百度上一大堆配置说明

c_cpp_properties.json

{

    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "/usr/include",
                "${workspaceFolder}"
            ],
            "defines": [
                
            ],
            "compilerPath": "/usr/bin/gcc",
            "intelliSenseMode": "gcc-x64",
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "${workspaceFolder}"
                ]
            }
        }
    ],
    "version": 4
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        
        {
          "name": "gcc.exe - Build and debug active file",
          "type": "cppdbg",
          "request": "launch",
          "program": "${fileDirname}/${fileBasenameNoExtension}",
          "args": [],
          "stopAtEntry": false,
          "cwd": "${workspaceFolder}",
          "environment": [],
          "externalConsole": false,
          "MIMode": "gdb",
          "miDebuggerPath": "gdb",
          "setupCommands": [
            {
              "description": "为 gdb 启用整齐打印",
              "text": "-enable-pretty-printing",
              "ignoreFailures": true
            }
          ],
          "preLaunchTask": "build"
        }
      ]
}  

tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "build",
            "command": "gcc",
            "args": [
              "-g",
              "${file}",
             // "${fileDirname}/need.c", // 单文件下注释,多文件下此处添加.c文件进行编译
              "-o",
              "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "problemMatcher": "$gcc",
            "options": {
              "cwd": "${workspaceFolder}"
            },
            "group": {
              "kind": "build",
              "isDefault": true
            }
        }
    ]
}

配置完以上三个文件之后,如果你没有更改权限的话,大概率在你的控制台会输出如下图:
在这里插入图片描述
下面我们配置一下权限。
在这里插入图片描述
接下来重新执行,

恭喜,配置完成 over

若要配置很多关联文件,比如在testc.c里面需要包含其他自写文件,请参考task.json的注释。请读者自行尝试!

4.结语

之前都是直接在虚拟机进行ssh远程连接进行操作,初次尝试使用WSL,写的东西肯定有很多不足,欢迎路过大佬批评指正!

要在VSCode连接WSL(Windows Subsystem for Linux),可以按照以下步骤进行操作: 1. 首先,确保您已经安装VSCodeWSL。 2. 在VSCode安装"Remote - WSL"扩展。您可以通过按下Ctrl+Shift+X(或点击左侧的扩展图标)来打开扩展面板,然后搜索并安装"Remote - WSL"。 3. 在VSCode的左下角,点击打开远程窗口(Remote-WSL:New Window)按钮。这将打开一个新的VSCode窗口,用于连接WSL。 4. 在新窗口中,您会看到WSL的列表。选择您想要连接WSL发行版。 5. VSCode将自动连接WSL,并在窗口的左下角显示WSL的状态。 现在,您可以在VSCode中使用WSL的功能,例如在WSL终端中运行命令、编写和调试Python代码等。您还可以从Windows系统中访问WSL文件系统,并在WSL和Windows之间传输文件。 请注意,您需要在WSL安装所需的扩展和工具,以便在VSCode中进行使用。在WSL中,您可以使用apt或其他包管理器安装所需的软件包。 要在WSL中使用VSCode的本地扩展,请在WSL安装相应的扩展。您可以在WSL终端中运行以下命令,按照扩展的安装指南进行操作。 在WSL终端中安装Python相关扩展: ``` code --install-extension ms-python.python ``` 在WSL终端中安装其他扩展: ``` code --install-extension <extension-name> ``` 通过连接WSL,您可以在VSCode中获得更好的Linux开发体验,并轻松在Windows和Linux之间切换和协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值