0


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 -aGsudo<username>

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

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

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

接下来安装必要组件

sudoapt-getinstall 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>usingnamespace std;intmain(){
    cout <<11<< endl;
    cout <<22<< endl;return0;}

接下来是编译运行项目,有两种方法,第一种是用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-20231207133734933image-20231207234429023image-20231207133823207image-20231207133849175image-20231207133907912image-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.cpp

person.h

person.cpp

进行测试,代码如下

// main.cpp#include<iostream>#include"person.h"usingnamespace std;intmain(){
    cout <<11<< endl;
    Person* p =newPerson(22,"lzj");
    cout << p->getAge()<< endl;return0;}
// person.h#include<iostream>usingnamespace std;classPerson{public:Person()=default;Person(int age, string name):age_(age),name_(name){}intgetAge();private:int age_;
    string name_;};
// person.cpp#include"person.h"intPerson::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

标签: vscode c++

本文转载自: https://blog.csdn.net/weixin_52877114/article/details/134868399
版权归原作者 瓜牛会飞 所有, 如有侵权,请联系我们删除。

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

还没有评论