Windows+WSL+CMake+VSCode: 个人认为运行调试C++小项目的最佳配置

个人感觉编写代码、编译、运行、调试都很舒服,而且适配多文件的项目。

操作系统为win11,首先安装wsl(ubuntu20.04),然后安装好必要的工具,最后在windows中使用vscode远程连接wsl。

1. 安装WSL

首先在 控制面板->程序->启用或关闭Windows功能 中打开Hyper-V、Windows虚拟机监控程序平台、适用于Linux的Windows子系统

image-20231207004314209

重新启动电脑后以管理员身份打开powershell

image-20231207004727062

输入以下命令设置wsl为wsl2(听说更好)

wsl --set-default-version 2

查看可以安装子系统的版本(如果提示无法解析服务器的名称或地址,可能是你关闭了强制windows更新,需要重新打开)

wsl -l -o

如果安装默认Ubuntu版本,输入以下命令即可

wsl --install

我选择的是Ubuntu20.04,输入

wsl --install -d Ubuntu-20.04

2. Ubuntu配置

安装好之后搜索ubuntu即可打开,打开默认用户名是root,建议新建一个用户(<username>换成你自己的)

adduser <username>

然后按照提示输入密码和其他信息,再将用户添加到sudo组

usermode -aG sudo <username>

重新打开powershell,输入以下命令设置默认登陆用户

ubuntu2004.exe config --default-user <username>

现在可以开始使用ubuntu了,第一步肯定是换源参考链接,第二步建议直接把bash换成zsh,安装历史命令提示、语法高亮插件之后非常舒服,参考链接

接下来安装必要组件

sudo apt-get install gcc g++ cmake build-essential gdb

3. 单文件项目编译、运行、debug

首先在ubuntu中新建一个文件夹进行测试,并在其中打开vscode

mkdir demo1
cd demo1
code .

第一次打开应该会弹出一些提示,连接的类型要选择wsl,然后右下角选择Yes去安装一些东西,然后安装图中的这些插件

image-20231207131318567

点击新建文件按钮新建main.cpp进行测试

image-20231207133410422
// main.cpp
#include <iostream>
using namespace std;

int main() {
    cout << 11 << endl;
    cout << 22 << endl;
    return 0;
}

接下来是编译运行项目,有两种方法,第一种是用C/C++插件,第二种方法是使用CMake。

第一种方法速度比较慢,而且不适合多文件项目,不推荐使用,但是还是介绍一下,如果不想看可以直接跳到这里

(1) 使用VSCode插件

点击右上角的三角形,或者按F5,然后选择g++编译器

image-20231207133459656

此时会生成.vscode文件夹,里面包含了如何编译这个cpp的命令,还生成了可执行文件main,并且自动执行了一遍

image-20231207133546223

右上角的三角形可以在run和debug两种模式中进行切换。如果需要debug,需要选择debug模式,并在文件中打上断点,点击运行,可以看到成功进入debug模式

image-20231207133609674

(2) 使用CMake

删除上一步创建的.vscode文件夹和可执行文件main,只留下main.cpp,如果没做上一步就不需要删除。然后点击设置->Command Palette,或者按快捷键Ctrl+Shift+P

image-20231207133651651

在弹出的窗口中输入>CMake: Quick Start并回车,再选择ubuntu中的GCC,然后在弹出的窗口中输入demo1,然后依次选择C++、Executable,会自动生成CMakeLists.txt并且生成了build文件夹

image-20231207133734933 image-20231207234429023 image-20231207133823207 image-20231207133849175 image-20231207133907912 image-20231207133925013

点击下方的三角形,即可运行

image-20231207234101448

接下来介绍debug方法,点击工具栏左边的CMake,然后在Configure里面点击铅笔符号,选择Debug模式。

image-20231207234544690

注意,由于Debug模式不会开启优化,编译时间比较慢,所以建议平时选择Release模式,只有在需要Debug的时候才切换到Debug模式,在main.cpp中打上断点,然后点击下面的虫子按钮,进入debug

image-20231207234857131

4. 多文件项目编译、运行、debug

在多文件项目中,如果使用vscode的运行工具,有点麻烦,因此建议使用CMake。首先在ubuntu中创建demo2文件夹,然后分别创建main.cppperson.hperson.cpp进行测试,代码如下

// main.cpp
#include <iostream>

#include "person.h"
using namespace std;

int main() {
    cout << 11 << endl;
    Person* p = new Person(22, "lzj");
    cout << p->getAge() << endl;
    return 0;
}
// person.h
#include <iostream>
using namespace std;

class Person {
  public:
    Person() = default;
    Person(int age, string name) : age_(age), name_(name) {}
    int getAge();
  
  private:
    int age_;
    string name_;
};
// person.cpp
#include "person.h"

int Person::getAge() {
    return age_;
}

和之前的步骤一样,快速创建一个CMakeLists.txt

image-20231207235910304

因为main.cpp中包含了person.h,需要修改一下CMakeLists.txt,把第7行add_executable(demo2 main.cpp)改为add_executable(demo2 person.cpp main.cpp)

保存后会自动编译,编译成功后点击下面的三角形,程序正常运行。将CMake设置为Debug模式后,添加断点,点击下面的虫子,成功进入debug

image-20231208000329092

5. 关闭WSL

如果长期不使用WSL,可以关闭以节省资源。

查看目前正在运行的wsl

wsl --list --verbose

关闭所有wsl

wsl --shutdown

6. 其他

我也是刚开始用WSL,后面会在这里总结一些经验

(1) 文件传输

Windows与WSL传输文件非常方便,打开文件资源管理器,点击左边的Linux,选择安装的Ubuntu,进入/home目录,即可看到自己的文件,可以随意复制粘贴

在这里插入图片描述

(2) mysql端口冲突

众所周知,mysql默认的端口是3306。我在windows中安装了mysql,并且启用了服务,在WSL中我死活启动不了mysql,后来才发现是端口冲突,需要关闭windows的mysql服务。首先搜索服务页面并打开,找到MySQL80,停止服务

image-20231208001719875
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当谈到美化和搭建Linux开发环境时, VS Code,WSLWindows Terminal都是非常有用的工具。 首先,VS Code是一款流行的开源代码编辑器,可通过安装各种插件进行美化。你可以选择喜欢的主题和语法高亮方案,以配合你的个人喜好。 其次,WSLWindows Subsystem for Linux)是一种在Windows运行Linux二进制文件的兼容层。通过安装WSL,你可以在Windows中使用真正的Linux发行版,如Ubuntu或Debian。这样,你就可以在Windows系统中体验和开发Linux环境下的应用程序。 最后,Windows Terminal是Windows新的命令行终端。它支持多个选项卡以及各种自定义设置,如调整配色方案、字体大小和字体类型等。你可以使用Windows Terminal将多个终端会话放置在一个窗口中,从而提高工作效率。 要搭建Linux开发环境,首先你需要安装WSL以及喜欢的Linux发行版。然后,你可以通过安装VS Code插件和扩展来优化你的开发体验。安装一些常用的扩展,如Python、C++或Node.js,以根据你的需求进行开发。 当你需要在Windows环境中执行Linux命令时,你可以打开Windows Terminal,并选择WSL作为默认终端。这样,你就可以通过Windows Terminal运行和管理你的Linux环境。 总结起来,VS Code,WSLWindows Terminal是一些功能强大且易于使用的工具,它们可以帮助你美化和搭建Linux开发环境。使用这些工具,你可以在Windows中轻松进行Linux开发,并以最佳方式执行命令和编辑代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值