在wsl下运行c语言,在Windows10通过WSL架设linux/gcc c语言学习环境

在Windows10通过WSL架设linux/gcc c语言学习环境

零:简单介绍与先决条件

中国一般的大学C课程中都使用很过时的编译器来进行教授——比如说什么visual studio 6.0啊,dev c++啊。以笔者的眼界所看到的C语言教程中,大多都建议学习者在Linux环境下学习C语言。在以往,如果没有另外一台电脑的话,想要使用GNU/Linux就得设置臃肿的虚拟机程序。对于初学者来说,虚拟机难以使用,还不如装个新版本的visual studio算了。但是随着WSL的出现,在Windows下获得Linux环境变得前所未有的简单。本教程简单的介绍了如何安装配置WSL并使用visual studio code与其进行交互。

想要安装WSL,你的操作系统至少是Windows 10。这年头还有人没在用Windows 10吗?别用Windows 7了,Windows 10很好用的。

但是如果你想要安装WSL2,你得注意

对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。

对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。

低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。

本教程并不打算演示安装WSL2。因为根据笔者的实验,有许多虚拟机程序与WSL2不兼容——比如说网易mumu模拟器,安装WSL2后运行的它会直接死机。如果你想安装WSL2请按照注释一的内容进行操作。

注释一中还介绍了预览版Windows 10 中的简化安装方法——反正我们现在用不到,我懒得说,自己看注释一去罢。

我偷偷的说一句,其实我上面的说法有误。并不是想要用WSL就非得用Windows 10。在Windows Server 2019(版本 1709)和更高版本上同样可以安装

一:启用适用于 Linux 的 Windows 子系统

我们得先改一下设置才能在Windows 上安装整上Linux。

点击开始菜单,

ec6f09d29aaf845df07f2c047d5316d5.png

直接敲键盘进行搜索,输入“Windows功能”这几个字符,

点击进入“启用或关闭 Windows 功能”,

6214353b75967850c5cdb283fba84100.png

拉到下面,选中“适用于 Linux 的 Windows 子系统”,随后点击确认。

c9c63bda7001be3d684bc4dd69e45ebc.png

等待一段时间后,提示重启。那当然是重启它啦。

二:(艰难的)安装Linux包

当一切顺利(指网络畅通)时,在Windows商店下载Linux发行版

打开你的 Windows 商店,搜索“Linux”,

65b77ecc83db00cb1f0185ac1b742a71.png

因为我喜欢,所以我在这里演示安装Ubuntu 20.04,

6978f0fb6ba721617954d761b3550e8e.png

获取,安装,下载,没什么好说的。

当诸事不宜时,手动下载安装

下载

如果你无法在Windows商店下载,或者直接打不开Windows商店,或者甚至你的Windows 10里连Windows商店都没有,那么你需要手动安装

我直接给在这里直接提供给你微软包的下载链接,这里我拿Ubuntu 20.04进行演示。

可能会下得很慢。没办法,你网络环境差怪谁嘛,慢慢等~。

通过 PowerShell 手动安装

找到你下载那个包的文件夹,然后我们开PowerShell。

打开PowerShell的方法:点击左上角的“文件”,然后你可以看到了。

ab0afe98d177acd7f2ce3ba1326cbbe6.png

注意:请确保你的文件管理器可以完整显示文件名。

c5e53746a85317f25e7593acb8fde39a.png

在PowerShell内输入如下命令。

注意:记得把下面那个“app_name.appx”换成你的文件包的文件名。

Add-AppxPackage .\app_name.appx

f7771fc9abb08a2e0964b17af2ab4ffc.png

现在打开开始菜单,可以看到我们已经安装好了。

67a079fb12e9e843f464894207a0cc9d.png

三:配置Ubuntu

设置用户名与密码

启动Ubuntu后,会让你等一会,如下图:

811fbd0d8fe176238f825021bc4dcb76.png

等它配置好后,会让你输入用户名:

7971573fef8d4e0721295313685cf09a.png

随后是输入两次密码

注意:Linux命令行下输入密码 不会显示任何符号。不要担心你的键盘有没有坏。

e2fb330e7e1bd094601767e856d790a7.png

看到类似于这样的界面,就说明你成功安装好Ubuntu了:

d21ab66a1e7433352a0162a5d5000e25.png

改为国内软件源并跟新

现在打开浏览器,在正经的搜索引擎里搜索

tuna ubuntu

你应该能找到这样的网站。

9214d6f610462e396d24f9dfe9a0dcb6.png

tuna很贴心的提醒你这是什么版本,你应该在哪里修改。

我们这里安装的是20.04版本,所以我们继续。

现在我们要和对于某些人来说很恐怖的命令行搏斗一下下。在命令行中输入:

sudo nano /etc/apt/sources.list

注意: 按ctrl + v 键进行粘贴是没有用的,放弃吧。

sudo意思是以管理员身份运行,nano是文本编辑器软件,后面那一串是我们要改的配置文件的路径。

输入密码后你应该看到像这样的界面:

706fd165efc5c1340088d2b096178bd8.png

注意: 如果不像那样而是一片黑,说明你打错命令了。按ctrl + x 键退出重来。

现在我们要把这个文件里所有不是以“#”号开头的行都打上“#”号,像这样。

c9b01f3e132bbbbdbf4a9ee0dc159f19.png

通过键盘的方向键移动光标。有很多行的,慢慢来。

然后在文件最下面粘贴上tuna里的那一大堆东西。

注意: 虽然按ctrl + v 键进行粘贴没有用,但是这手打也太浪费时间了。点击左上角的那个图标,可以有粘贴的方法,如图:

5e45937cd015e8ce7de9f66392b6b97f.png

粘好了,按ctrl + o 保存。问你要不要保存,敲回车。然后按ctrl + x 退出nano。

设置好软件源后,我们在终端输入命令:

sudo apt update

再输入:

sudo apt upgrade

问你是否安装。输入y后回车。

c138ce9586f13c835fbfc82f53024240.png

这样就跟新好了。

然后我们输入:

sudo apt install build-essential

按y回车后就安装好gcc了。

在终端输入:

gcc -v

看到如下输出,证明安装完毕。

760fdde3db040a1dbc3aaf4f2c172ee2.png

四:安装visual studio code并配置

在这里下载安装Visual Studio Code,没什么好说的。

建议把框中的全勾选上。其他全部保持默认即可。

27c714b941345df019c37bc7446b7a13.png

安装好了,现在Visual Studio Code应该是英文的。不要怕,在左边那一栏最底下那个点进去,搜索“Chinese”,安装中文包。

250691d2b6a72d3e9c58cd599a29f0e9.png

重启Visual Studio Code,现在已经是中文了。

Visual Studio Code很智能,它检测到了你安装了WSL,问你要不要安装相关插件。那肯定要啦。

07938b0a4208b81335847ad6b9439a5b.png

安装好后,我们连接进我们的WSL。

d403c60bff91262bccbfb9d3f59b96ad.png

可能会有防火墙提示是否放行node,同意即可。

84f2675ce7cf6f0d96d06090509e42cd.png

点击左上角打开文件夹,默认就行,我懒得放图了。

按快捷键 ctrl + `(这个键一般在esc键下面)呼出终端。好了,现在你可以新建c文件并使用gcc或者是make命令来编译c文件了。

这里我们演示使用make。我创建了一个cs.c的c源文件,然后我们得写一个Makefile。新建一个名为“Makefile”的文件,写入:

CFLAGS=-Wall -g

并保存。

然后我们就可以通过

make [你的c文件名,不要输入.c后缀]

编译。

输入:

./[你的文件名]

运行文件。

62115613eeb0999724bbda0db3f17901.png

完事了。

原文:https://www.cnblogs.com/songxi/p/14495952.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android studio gradle 自动更新,android studio gradle 两种更新方法更新

又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可.升级完了,打开GIT下载的项目,启动…

android 线性布局蒙层,Android开发 - 掌握ConstraintLayout(一)传统布局的问题

在传统的Android开发中,页面布局占用了我们很多的开发时间,而且面对复杂页面的时候,传统的一些布局会显得非常复杂,每种布局都有特定的应用场景,我们通常需要各种布局结合起来使用来实现复杂的页面。随着ConstraintLay…

android sdk 4.4.4,4.4.4 not in Android SDK manager

问题I need to do some testing with 4.4.4 and it isnt available in my Android SDK Manager?Any ideas on what Im doing wrong?回答1:There is no problem at you Android SDK Manager, you just have to download the API 19.The API 19 is used by all the KitKat devi…

android7.0提示定位,解决android7.0上某些PopuWindow显示位置不正确的问题

网上关于android系统7.0的popupwindow适配的解决方案,基本都是一样的,就是重写PopupWindow里面的方法但是如何进行重写,对于一个初次接触的人来说,是个很头疼的问题。一来是涉及到java基础,二来是涉及到popupwindow的源…

html文档定义层标记是,jsp练习题目201312

《JSP商务网站设计》复习综合题型一、单项选择题1. 关于分页显示,下列的叙述哪一项是不正确的?()A)只编制一个页面是不可能实现分页显示的B)采用一至三个页面都可以实现分页显示C)分页显示中,记录集不必在页面跳转后重新生成D)分页显示中页面…

html一个页面同时加载多个饼图,Html5饼图绘制实现统计图的方法

Html5提供了强大的绘图API,让我们能够使用javascript轻松绘制各种图形。本文将主要讲解使用HTML5绘制饼图(统计图)的方法。先看一下饼图效果:这个图是动态生成的,根据传入的比例参数(数组),来动态绘制饼图。饼图的大小也是根据高度…

html中半透明效果,CSS半透明效果的属性和场景

在CSS中与半透明效果相关的属性有两个:opacity和rgba。opacity属性的值规定透明度。从 0.0 (完全透明)到 1.0(完全不透明)。设置opacity元素的所有后代元素会随着一起具有透明性,一般用于调整图片或者模块的整体不透明度。IE8 以及更早的版本支持替代的 …

HTML5新增的video标签,HTML5中video标签的使用方法

HTML5中video标签的使用方法发布时间:2020-08-27 11:33:56来源:亿速云阅读:100作者:小新这篇文章将为大家详细讲解有关HTML5中video标签的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希…

开封高级高考2021成绩查询,2021开封市地区高考成绩排名查询,开封市高考各高中成绩喜报榜单...

距离2018年高考还有不到一个月的时间了,很多人在准备最后冲刺的同时,也在关心高考成绩。2018各地区高考成绩排名查询,高考各高中成绩喜报榜单尚未公布,下面是往年各地区高考成绩排名查询,高考各高中成绩喜报榜单,想要了解同学可以…

【清华大学】《逻辑学概论》笔记

教学视频来源 ----第0讲 概要-0.1 讲师介绍0.2 课程内容--第1讲 什么是逻辑学?-1.1 “逻辑和逻辑学1.2 推理和推理形式1.3 有效推理形式1.4 逻辑学的特点1.5 逻辑学的基本准则1.6 逻辑学和其他学科的关系1.7 关于本课程《逻辑学概论》---第2讲 逻辑学的产生与发展-…

公用计算机管理,如何管理公用计算机和私人计算机的文件访问

如何管理公用计算机和私人计算机的文件访问08/07/2014本文内容适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007上一次修改主题: 2011-08-01本主题将介绍如何为 Microsoft Exchange Server…

Spring Boot 2 学习笔记(1 / 2)

Spring Boot 2 学习笔记(2 / 2) ---01、基础入门-SpringBoot2课程介绍02、基础入门-Spring生态圈03、基础入门-SpringBoot的大时代背景04、基础入门-SpringBoot官方文档架构05、基础入门-SpringBoot-HelloWorld06、基础入门-SpringBoot-依赖管理特性07、…

Spring Boot 2 学习笔记(2 / 2)

Spring Boot 2 学习笔记(1 / 2) ---45、web实验-抽取公共页面46、web实验-遍历数据与页面bug修改47、视图解析-【源码分析】-视图解析器与视图48、拦截器-登录检查与静态资源放行49、拦截器-【源码分析】-拦截器的执行时机和原理50、文件上传-单文件与多…

写出表格的结构html,一个面试题,根据json结构生成html表格

我的输入是{A1: {B1: {C1: {D1: 1233,D2: 11},C2: {D1: 10,D2: 10}},B2: {C1: {D1: 10,D2: 11},C2: {D1: 10,D2: 10},C3: {D1: 10,D2: 10}}}}用什么框架都可以,只要求输出以下table, json的最后一个节点就是table的最后一个column,并且只能占…

足球点球 html5,身为西甲第一点球手,C罗只有5次让点经历,难怪点球破门过百...

当今足坛是C罗和梅西的天下,两人持续不断的刷新创造各种记录,让球迷应接不暇。比梅西大2岁的C罗近期更是开挂,今天说他的点球。C罗现在是西甲历史上的第一点球手本赛季西甲第21轮,皇马客场4-1大胜瓦伦西亚,C罗在比赛中…

Spring Cloud 学习笔记(2 / 3)

Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) ---56_Hystrix之全局服务降级DefaultProperties57_Hystrix之通配服务降级FeignFallback58_Hystrix之服务熔断理论59_Hystrix之服务熔断案例(上)60_Hystrix之服务熔断…

html5的colgroup,HTML colgroup 标签 | 菜鸟教程

HTML 标签实例 和 标签为表格中的三个列设置了背景色:ISBNTitlePrice3476896My first HTML$53尝试一下 浏览器支持所有主流浏览器都支持 标签。标签定义及使用说明 标签用于对表格中的列进行组合,以便对其进行格式化。通过使用 标签,可以向…

Spring Cloud 学习笔记(3 / 3)

Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(2 / 3) ---108_Nacos之Linux版本安装109_Nacos集群配置(上)110_Nacos集群配置(下)111_Sentinel是什么112_Sentinel下载安装运行113_Sentinel初始化监控114_Sentinel流控规则…

普林斯顿计算机科学系,普林斯顿大学计算机科学系

普林斯顿大学计算机科学系研究生阶段开设有以下学位项目,分别是计算机科学博士:为期5年,要求申请者本科毕业,不限专业背景,但通常被录取的学生拥有工程、理科或数学专业背景,未设定本科GPA要求,…

html单选按钮for,HTML如何实现RadioButton单选按钮

用HTML来实现RadioButton,需要使用input标签,其中type指定为radio,接下来的文章我们就来说一说详细的内容。我们先来看input标签的格式注:对于需要选中检索的值,可以利用表单的提交或使用JavaScript获取。我们来看具体…