vscode + wsl2 + xmake快速构建c语言编译调试环境

前言

使用这一套是我觉得最方便的,wsl2使得我可以不用脱离windows,且无需安装庞大且臃肿虚拟机。vscode让我可以更加方便快捷的编辑代码,而xmake是一站式的工程构建工具且作者就是中国人文档啥的群啥的都是中文,比起cmake makefile学习成本低不少。

安装软件

vsocde安装

vscode官网,下载最新版的安装包。安装过程只有一点要注意:

这部分, 前两个是可以让你右键有通过Code打开功能。非常方便的打开文件夹。

第三个主要是让你可以让一些文件打开默认为vscode打开

第四个主要是可以通过命令行的code打开,在未来的wsl使用中非常方便。

wsl2安装

win + S 输入启用

点击启用或关闭windows功能,打开"适用于Linux的Windows子系统"和"虚拟机平台功能"(wsl2需要子系统功能)

非c盘安装方法

接下来可以通过 https://docs.microsoft.com/zh-cn/windows/wsl/install-manual 去下载对应的wsl的linux发行版(如ubuntu)。然后更改后缀为zip,用bandzip等解压软件进行解压到指定平台,解压文件夹里面有个.exe执行的文件(如ubuntu.exe)双击即可运行。

快捷安装方法

也可以通过微软商店搜索wsl后点击免费下载(这种做法默认保存到c盘)

这里就可以根据提示设置账户和密码了(这里密码无回显)

XMAKE安装方法

官方安装教程

这里做个简单的搬运

bash 复制代码
sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake

如果出现报错

bash 复制代码
E: Release file for http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease is not valid yet (invalid for another 4h 5min 19s). Updates for this repository will not be applied.

是由于wsl系统时间设置不正确,使用如下命令同步windows时间

bash 复制代码
sudo hwclock -s

作者在蓝桥云课上开设了一套官方课程:Xmake 带你轻松构建 C&C++ 项目

这里是作者csdn博客

安装vscode插件

首先打开voscode 在插件搜索里搜索chinese,让整个界面变成中文。

输入wsl,下载wsl插件

接下来进入wsl,输入

bash 复制代码
code .

在wsl中打开vscode

然后,输入c,在wsl中安装c/c++插件

最后输入xmake,下载xmake插件

下载编译工具链

bash 复制代码
sudo apt install gcc # 编译c文件
sudo apt install g++ # 编译c++文件
sudo apt install gdb # 调试代码

如何使用它编程和调试

我们打开wsl,使用xmake创建一个简单的工程

bash 复制代码
xmake create -l c hello

create命令用来创建工程,-l c指定语言为c语言

hello 是工程名

详情参考官方文档:工程例子

然后,进入hello 工程

bash 复制代码
cd hello

原地打开vscode

bash 复制代码
code .

首先我们来编译运行一下,打开vscode终端,输入

bash 复制代码
xmake f -m debug
xmake
xmake r

我们发现生成的xmake非常简单就三行代码,第一行是添加两种模式分别是用于调试的debug模式和用于发布的release模式。默认是release模式,可以通过xmake f -m debug切换到debug模式,后续配合vscode调试。

target是指定你的工程名,set_kind作用是指定生成的代码是二进制还是库,最后的add_file就是添加src下面所有.c结尾的文件。

接下来我们点击小虫子,跳转到调试界面。点击运行和调试

就可以愉快的调试了

相关推荐
hunandede31 分钟前
av_image_get_buffer_size 和 av_image_fill_arrays
c++
PigeonGuan38 分钟前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter
小狮子安度因2 小时前
PyQt的安装和再PyCharm中的配置
ide·pycharm·pyqt
怀澈1222 小时前
高性能服务器模型之Reactor(单线程版本)
linux·服务器·网络·c++
chnming19872 小时前
STL关联式容器之set
开发语言·c++
威桑3 小时前
MinGW 与 MSVC 的区别与联系及相关特性分析
c++·mingw·msvc
熬夜学编程的小王3 小时前
【C++篇】深度解析 C++ List 容器:底层设计与实现揭秘
开发语言·数据结构·c++·stl·list
yigan_Eins3 小时前
【数论】莫比乌斯函数及其反演
c++·经验分享·算法
Mr.133 小时前
什么是 C++ 中的初始化列表?它的作用是什么?初始化列表和在构造函数体内赋值有什么区别?
开发语言·c++
阿史大杯茶3 小时前
AtCoder Beginner Contest 381(ABCDEF 题)视频讲解
数据结构·c++·算法