wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度

前言

这个我自己鼓捣了很多次,都是因为编译速度不满而放弃,最后融合了很多大咖的微博成功了,帮助一些初学者,放在这里帮助记录

第一章:wsl2 + ubuntu22.04

参考博客:
是参考这个博主的
这个博主讲的很详细了,需要注意的是,安装ubuntu前先把wsl升级到wsl2,设置默认工具为wsl2,安装之前建议先下载一个终端,在微软的store中就能下载
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第1张图片
按下箭头,在按住ctrl点击powershell,就是以管理员打开
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第2张图片

wsl --set-default-version 2 #设置默认启动版本

这样作为就不用安装完成ubuntu后还要去切换成wsl2,因为有时会切换失败,等待时间很长
这里我在背书一遍,防止丢失
适用于Linux的windows子系统的安装及使用(WSL2 GUI)
1 概要
WSL是windows推出的可让开发人员不需要安装虚拟机(vmware,virtbox)或者设置双系统启动就可以原生支持运行GNU/Linux的系统环境,简称WSL子系统。

目前最新的版本是WSL2,在原先的基础上提高了文件系统的性能并添加了完全的的系统调用支持。WSL2使用全新体系架构使其能真正的运行一个Linux内核。

在基于最新的WSL2上,现在已经完全集成了在wsl2中的桌面体验,意味着可以在Windows上运行Linux GUI应用程序(X11和Wayland)。目前在本篇编写阶段WSL2 GUI还处于预览版阶段,故如果需要使用WSL2 GUI功能还需要加入Windows 预览体验版计划并更新Windows系统。这里的桌面跟你们想象的有点不一样,他就是可以以界面的形式打开某些界面软件,而不是打开系统就是桌面形式,网上那些桌面不要去试了,我都试过,一言难尽。

根据上述可知,使用WSL2我们可以安装ubuntu,arch Linux等一些流行的Linux发行版。并且由于是Windows原生支持的子系统功能,所以可以使用最少的资源和开销运行ubuntu,配合VS Code远程拓展功能,开发者用户体验大幅提升。

2 安装WSL2
2.1 先决条件
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。

备注:检查Windows版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。 可通过选择“开始”>“设置”>“Windows 更新”>“检查更新”来更新到最新的 Windows 版本。
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第3张图片

2.2 启用虚拟机平台和 Linux 子系统功能
以管理员权限启动PowerShell或者cmd,然后输入以下命令启用虚拟机平台:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

以管理员权限启动 PowerShell或者cmd,然后输入以下命令启用 Linux 子系统功能:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

1
在以上每一步命令执行完之后,PowerShell 中可能会提示你重新启动计算机。按“Y”可以重新启动。

也可以使用控制面板来启用“适用于 Windows 的 Linux 子系统”:
设置->应用->可选功能->右上侧有一个更多功能]
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第4张图片
2.3 安装一个Linux发行版
打开微软商店应用,在搜索框中输入“Linux”或者“ubuntu”然后搜索,你可以看到搜索结果中有很多的 Linux 发行版可以选择。选择一个你喜欢的 Linux 发行版本然后安装:

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第5张图片

注意1:有可能启动ubuntu报告WslRegisterDistribution failed with error: 0x800701bc是因为没有升级linux内核使用wsl --update下载更新即可。
注意2:在商店安装后并没有完全完成Linux子系统安装,还需要运行一次Linux系统来完成内核下载以及用户名密码的设置:(或者在windows的搜索中直接搜索刚刚安装的ubuntu则会显示已下载的发行版,运行它)

2.4 启动WSL2
注意必须满足先决条件

使用命令行PowerShell或者cmd查看已安装的Linux子系统:

wsl -l -v

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第6张图片

如果提示 wsl 不是内部或外部命令,说明你没有启用“适用于 Windows 的 Linux 子系统”,请先完成"2.2章节步骤"。

使用wsl --set-version 2命令可以设置一个Linux发行版的WSL版本,为刚刚wsl -l查询到的名字"Ubuntu-20.04":

wsl --set-version Ubuntu-22.04 2

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第7张图片
我这里已经是wsl2了,所以报错
也可以使用如下命令设置为每个安装的发行版默认WSL2启动:

wsl --set-default-version 2

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第8张图片
2.5 启用WSL2 GUI功能
在目前最新的WSL2支持中,可直接在WSL2的Linux系统中运行Linux GUI应用程序,主要是Windows对X11和Wayland的支持:

注意:需要使用 Windows 11 内部版本 22000或更高版本才能访问此功能。 要获取最新的预览版,请加入 Windows 预览体验计划。

根据上述描述,windows用户需要先加入Windows预览体验计划并更新系统后即可默认使用WSL2 GUI功能。在本文编写期间还是需要加入预览计划才能使用此功能,可能后面不久即可直接使用此功能而不需要加入预览计划。

2.6 快捷启动wsl2
可将WSL2应用固定到Windows任务栏或者启动菜单中以便快速启动wsl2。

3 WSL2 ubuntu使用技巧
3.1 导入导出Linux发行版
通过使用tar文件导入导出Linux发行版,可使其在任意地方安装Linux发行版或者共享自己的Linux发行版:

查看已安装的Linux发行版

wsl -l --all -v

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第9张图片
建议用一个单独的盘,大小要在50G以上,因为还会装比较多的软件
导出Linux发行版tar文件到D盘

wsl --export Ubuntu-22.04 k:/wsl2-ubuntu-22.04.tar

注销当前Linux发行版

wsl --unregister Ubuntu-22.04

重新导入并安装WSL2到D盘

wsl --import Ubuntu-22.04 k:/wsl2-ubuntu-22.04 d:/wsl2-ubuntu-22.04.tar --version 2

设置默认登录用户为安装时用户名

ubuntu22.04 config --default-user USERNAME

共享Linux发行版
此时导出的wsl-ubuntu-22.04.tar文件即可共享给任何使用wsl2的开发人员使用。在协同开发中使用更多,为每个开发者提供一致统一的开发环境。

3.2 更新Linux发行版国内镜像源
启动wsl2后,可根据国内镜像源修改/etc/apt/sources.list文件更新国内镜像源。
我的设置:

########   Ubuntu22.04LTS 清华镜像源   ###############
# 默认注释了源码镜像以提高 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


########   Ubuntu22.04 阿里云镜像源   ###############
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

########   Ubuntu22.04 中科大镜像源   ###############
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse


########   Ubuntu22.04 网易163镜像源   ###############
deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted
# deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
# deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu/ jammy universe
# deb-src http://archive.ubuntu.com/ubuntu/ jammy universe
deb http://archive.ubuntu.com/ubuntu/ jammy-updates universe
# deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu/ jammy multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ jammy multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted
deb http://security.ubuntu.com/ubuntu/ jammy-security universe
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security universe
deb http://security.ubuntu.com/ubuntu/ jammy-security multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security multiverse

就是把所有国内的放进去,不喜欢的可以网上找其他的源

修改/etc/apt/sources.list后执行以下命令更新源和所有应用程序。

sudo apt-get update
sudo apt-get upgrade

3.3 使用VS Code连接到WSL2 Linux发行版
Visual Studio Code 以及 Remote - WSL 扩展使你能够直接从 VS Code 使用 WSL 作为实时开发环境。 可以:
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第10张图片

在基于 Linux 的环境中进行开发
使用特定于 Linux 的工具链和实用程序
从 Windows 轻松地运行和调试基于 Linux 的应用程序,同时保持对 Outlook 和 Office 等生产力工具的访问
使用 VS Code 内置终端来运行选择的 Linux 发行版
利用 VS Code 功能,例如Intellisense 代码完成、linting、调试支持、代码片段和单元测试
使用 VS Code 的内置 Git 支持轻松管理版本控制
直接在 WSL 项目上运行命令和 VS Code 扩展
在 Linux 或已装载的 Windows 文件系统(例如 /mnt/c)中编辑文件,而无需担心路径问题、二进制兼容性或其他跨 OS 难题
在VS Code插件中搜索remote关键字,安装Remote Development插件即可安装所有远程插件,包括:SSH,WSL,Docker。

在Linux发行版的命令行中输入code .即可在Windows端启动VS Code并自动远程连接到WSL2中。如果首次启动VS Code还会在WSL2中安装一些必要依赖包。

注意:所有需要的文件和安装在WSL2中的插件都在~/.vscode-server文件夹下面。

3.4 WSL2与Windows之间共享文件或者文件夹
由于WSL2为Windows原生支持的子系统所以无需设置即可直接共享目录等。

Windows中直接访问WSL2中的文件或文件夹
直接在Windows的资源管理中即可直接访问WSL2中的目录:

WSL2中直接访问Windows中的文件或文件夹
在WSL2中所有的磁盘已被挂载到了Linux发行版中/mnt目录下,在此目录下默认会把Windows中所有已挂载的盘也映射到/mnt目录下:
小技巧:可在Windows中指定位置创建一个share文件夹,在WSL2使用ln -s /mnt/xx/share ~/share方式可快速在Windows和wsl2中共享文件。
3.5 WSL2的一些配置
一些关于WSL2的配置可参考https://docs.microsoft.com/zh-cn/windows/wsl/wsl-config,其中包括一些cpu核数,文件系统大小,内存大小,网络等配置,具体可根据需要查看,一般默认即可。

4 总结
对于一个开发人员,Linux的使用是必不可少的,在没有WSL之前我们的开发可能是双系统启动,也可能是使用虚拟机vmware,virtbox等安装一个Linux发行版。但由于双系统的不便捷性,虚拟机的性能和稳定性问题,导致开发环境的使用不便。在有了WSL2和VS Code的远程拓展支持后,一切Linux的开发都变得更加简单了,我们可以直接在Windows中使用到各种Linux发行版,并且由于Windows的支持,性能和稳定性方面可以得到最好的保证,配合VS Code的远程拓展功能,即可在VS Code中连接到Linux发行版中的项目文件目录里去,直接查看和编写代码,配合git插件,自带的终端等支持,大大提高开发效率。

对比Ubuntu的使用,WSL2现在也对Linux GUI应用程序进行了支持,使得WSL2的使用已经完全接近原生ubuntu体验。并且对于团队开发来说,开发环境不一致等问题也会导致团队效率的降低,而使用WSL2导出一个共享tar文件即可每个人拥有完全相同的开发环境。

提示:以下是本篇文章正文内容,下面案例可供参考

第二章:llvm 全家桶

vscode自带的提示,用过的都知道有点大姨妈,这个章节参考的是:
无痛安装clangd+clang+lldb

众所周知,VSCode的C/C++插件功能虽然全但是速度不怎么理想,写一点东西反应半天,非常之不友好。我们希望换到更加快速,提示更加智能的clangd上。

之前在网上看到了一大堆关于怎么配置LLVM家族的C/C++环境的教程,其中往往充斥着各种神鬼莫名的配置参数,对新手的劝退作用立竿见影。我理想的所谓新手教程应该是这样的:

可控性高:偏好GUI > 命令行 > config
上下文完整:一步解决一个特定问题,不引入额外的负担
可复现性强:每个步骤应该立刻有可供检查的结果,易于排查错误
好吧说来说去其实说的就是那些上来咣咣贴个config.json走人的。总之,今天我重走长征路,试图提出一个基本不使用配置文件的、绝对新手友好的入门教程。错漏或者词不达意之处,也请各位大手子斧正。一字不落的抄着

环境要求
本教程基于WSL Ubuntu 20.04,理论上在其它Linux发行版以及MacOS中也是通用的。至于Windows?不想麻烦事的话就用宇宙IDE吧,反正有免费版。

依赖的软件包,基本上就是LLVM全家桶+cmake:

clang:我们使用的编译器,拥有更加人性化的报错
clangd:一个C/C++的Language Sever后端,薄纱C/C++ Tools
lldb:调试工具,一家人就要整整齐齐
cmake:构造工具,因为clangd需要读取compile_commands.json才能提供服务
Ubuntu使用下面的指令进行安装,homebrew或者pacman同理(这也要教?)

sudo apt install clang clangd lldb cmake

然后是VSCode中需要的插件:
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第11张图片

只需要这四个就可以了。其中CodeLLDB需要下载一个文件,几乎是一定会下载失败的。
![在这里插入图片描述wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第12张图片

超时之后点击弹出来的消息,手动下载,然后再手动进行安装。

下载链接地址
离线LLDB包
LLDB包的参考博客
在弹出菜单里选择你下载的那个(后缀为.vsix)即可。注意在WSL环境下你可以从/mnt文件夹下访问Windows文件,假如你直接下载在系统自带的下载文件夹里,那就是在/mnt/c/Users//Downloads/里。装好了之后会弹出重载VSCode的窗口。

然后就是clangd的配置我把我的贴上来,大家也可以找网上的
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第13张图片

	// 开启粘贴保存自动格式化
	"editor.formatOnPaste": true,
	"editor.formatOnType": true,
	"C_Cpp.errorSquiggles": "disabled",
	"C_Cpp.intelliSenseEngineFallback": "disabled",
	"C_Cpp.intelliSenseEngine": "disabled",
	"C_Cpp.autocomplete": "disabled", // So you don't get autocomplete from both extensions.
	"clangd.path": "/usr/bin/clangd",
	// Clangd 运行参数(在终端/命令行输入 clangd -
	//Building Project-help-list-hidden 可查看更多)
	"clangd.arguments": [
		// 让 Clangd 生成更详细的日志
		"--log=verbose",
		// 输出的 JSON 文件更美观
		"--pretty",
		// 全局补全(输入时弹出的建议将会提供 CMakeLists.txt 里配置的所有文件中可能的符号,会自动补充头文件)
		"--all-scopes-completion",
		// 建议风格:打包(重载函数只会给出一个建议)
		// 相反可以设置为detailed
		"--completion-style=bundled",
		// 跨文件重命名变量
		"--cross-file-rename",
		// 允许补充头文件
		"--header-insertion=iwyu",
		// 输入建议中,已包含头文件的项与还未包含头文件的项会以圆点加以区分
		"--header-insertion-decorators",
		// 在后台自动分析文件(基于 complie_commands,我们用CMake生成)
		"--background-index",
		// 启用 Clang-Tidy 以提供「静态检查」
		"--clang-tidy",
		// Clang-Tidy 静态检查的参数,指出按照哪些规则进行静态检查,详情见「与按照官方文档配置好的 VSCode 相比拥有的优势」
		// 参数后部分的*表示通配符
		// 在参数前加入-,如-modernize-use-trailing-return-type,将会禁用某一规则
		"--clang-tidy-checks=cppcoreguidelines-*,performance-*,bugprone-*,portability-*,modernize-*,google-*",
		// 默认格式化风格: 谷歌开源项目代码指南
		// "--fallback-style=file",
		// 同时开启的任务数量
		"-j=2",
		// pch优化的位置(memory 或 disk,选择memory会增加内存开销,但会提升性能) 推荐在板子上使用disk
		"--pch-storage=disk",
		// 启用这项时,补全函数时,将会给参数提供占位符,键入后按 Tab 可以切换到下一占位符,乃至函数末
		// 我选择禁用
		"--function-arg-placeholders=false",
		// compelie_commands.json 文件的目录位置(相对于工作区,由于 CMake 生成的该文件默认在 build 文件夹中,故设置为 build)
		"--compile-commands-dir=build"
	],
	///作者:hongyaohongyao
	//链接:https: //juejin.cn/post/7126880493668139021
	//来源:稀土掘金
	//著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

下面注明了出处

第三章:ubuntu下面还要安装一下插件:

这个很重要,这个很重要,这个很重要

sudo apt install cmake #cmake创建makefile文件
sudo apt install ninja-build
sudo apt install python3-pip 
sudo apt install python3-venv
sudo apt install git

强烈建议pip换源,否则很容易失败,并且找不到问题

cd ~/.pip
如果不存在.pip则创建目录
mkdir ~/.pip
cd ~/.pip
 
 
touch pip.conf
sudo gedit ~/.pip/pip.conf
 
 
在pip.conf中写入如下内容:即可 
 
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ 
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

清华源链接

阿里云

中国科技大学

中国科学技术大学
到这里前期准备就结束啦。

第四章:安装ESP-idf

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第14张图片

vscode下按ctrl+shft+p查找esp-idf config ,点击下图中的框框中的内容
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第15张图片
然后就会弹出,选择下面安装:
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第16张图片
然后就会弹出:

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第17张图片
1,处建议选择espressif的源,大家都知道git网速慢的要死
2,第一次建议选择自己喜欢的版本,而不是本地版本
3、sdk存放的位置,可以根据个人喜好动
4,工具存放位置,建议不要动
5,安装install,等待安装,时间居于你的网络,建立工程vscode下按ctrl+e,再按一个n,就是新建项目,要设置项目名字,项目存放位置,以及芯片,其他都跟别的一样,有区别的就是
wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第18张图片
这里可以选择编译是用clang还是gcc,启动之后都要选择一下,否则会循环,gcc这个选项不会,但是速度要慢些,看你们自己了
还有就是wsl2中没有串口这个,可以参考微软官方
WSL2 如何使用usb

格式化的话,建议用astyle,网上也有很多教程我贴出我自己的设置,也是晚上找的

/* AStyle */
	"astyle.additional_languages": [
		"c",
		"cpp",
		"*.h",
	],
	"astyle.cmd_options": [
		// 预定义风格 -----------------------------------------------------------
		// "--style=ansi",             //ANSI 风格格式和缩进
		// "--style=kr",               //Kernighan&Ritchie 风格格式和缩进
		"--style=linux", //Linux 风格格式和缩进
		//"--style=gnu",               //GNU 风格格式和缩进
		// "--style=java",             //Java 风格格式和缩进
		"--indent=spaces=4", //缩进4个空格
		"--indent-preproc-block",
		"--indent-switches", // switch case的代码也依照标准缩进方式缩进
		//"--indent-cases", // / -K
		//"--indent-preproc-cond",//预处理缩进
		"--indent-col1-comments", //注释缩进
		// "--indent-continuation=1" //等号两边空格为1
		"--break-blocks", //if for 后面空一行
		// "--keep-one-line-blocks", //if后面只有一条语句,合拼
		"--keep-one-line-statements",
		"--pad-oper", //操作符两端插入一个空格
		"--pad-header",
		"--pad-comma", //逗号插入空格
		"--suffix=none",
		"--attach-closing-while",
		"--align-pointer=name",
		"--lineend=linux",
		"--convert-tabs", //TAB转换为空格
		"--verbose",
		"--delete-empty-lines", //删除多余空行
		//"--pad-paren-in", //括号内部加入空格
		"--unpad-paren", //移除括号两端多余空格
		"--align-pointer=name", //指针紧贴名字
		"--align-reference=name", //引用紧贴名字
		"--attach-return-type-decl", //返回类型紧贴名字
		"--add-braces", //if,for,while只有一行也加入大括号
		"--add-one-line-braces",
		"--attach-return-type",
		"--close-templates",
		//"--max-code-length=200", //   / -xC#
		//   "--break-after-logical", // / -xL
		"--pad-method-prefix",
		"--pad-method-colon=before",
	],

Ubuntu下要安装astyle,vscode下要安装astyle插件

以上所有操作都是在vscode链接Ubuntu下

wsl2 + vscode + espidf + clangd + clang + lldb windows下最快的编译速度_第19张图片
git 仓库管理什么的,网上很全也很明白我就贴几个我觉得好的

如何用git链接gitee和github
我个人觉得国内还是用gitee仓库,速度快

把已经有的项目添加到仓库

这个我觉得很有用,因为一般我们都是先建立项目,然后添加到仓库,喜欢给个好评哈,都是网上抄的,也不值得啥

你可能感兴趣的:(windows,vscode,ubuntu)