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结尾的文件。

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

就可以愉快的调试了

相关推荐
大道随心22 分钟前
【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
ide·开源·ai编程
freyazzr1 小时前
C++八股 | Day3 | 智能指针 / 内存管理 / 内存分区 / 内存对齐
开发语言·c++
闻缺陷则喜何志丹1 小时前
【动态规划】B4336 [中山市赛 2023] 永别|普及+
c++·算法·动态规划·洛谷
序属秋秋秋1 小时前
《C++初阶之入门基础》【普通引用 + 常量引用 + 内联函数 + nullptr】
开发语言·c++·笔记
筏.k1 小时前
C++ 网络编程(10) asio处理粘包的简易方式
java·网络·c++
belldeep1 小时前
C++:用 libcurl 发送一封带有附件的邮件
c++·curl·send·email·smpt
虾球xz1 小时前
CppCon 2015 学习:Transducers, from Clojure to C++
开发语言·c++·学习
派阿喵搞电子7 小时前
在UI界面内修改了对象名,在#include “ui_mainwindow.h“没更新
c++·qt·ubuntu·ui
C++ 老炮儿的技术栈8 小时前
UDP 与 TCP 的区别是什么?
开发语言·c++·windows·算法·visual studio
mochensage9 小时前
CSP信奥赛C++常用系统函数汇总
c++·信奥