参考博文:https://blog.csdn.net/Yuxin_Liu/article/details/72844187?locationNum=11&fps=1
https://blog.csdn.net/fred_home/article/details/105625662
1、启用Linux子系统功能
方法一
-
win上按右键,在菜单中选择“WindowsPowerShell (管理员)”或“命令提示符 (管理员)”
-
在窗口中输入:
dism /online /enable-feature /featurename:microsoft-windows-subsystem-linux
-
执行完毕后,重新启动计算机(直接按Y即可重新启动)。
方法二
-
打开控制面板->程序->启用或关闭windows功能
-
勾选 适应于Linux的Windows子系统 选项,重启计算机
2、启动开发人员模式
打开设置->开发者选项->勾选开发人员模式(此时会显示加载包,忽略它即可)
3、下载linux系统
方法一:
打开shell(此时不必是管理员)->输入下面指令
lxrun /install /y
我的报错如下:
进而选择方法二
方法二
打开 microsoft strore->搜索wsl->下载Ubuntu
下在完成后在弹出的界面设置一个新用户
4、进入Linux子系统 ,安装gcc
win+R 打开控制台->输入bash进入子系统->输入下面指令安装gcc
sudo apt install gcc
(刚刚安装的Linux子系统是没有gcc的,你可以通过gcc -version验证这一点)
过程中出现错误,比如404,可以根据提示进行更新,更新后在install gcc即可成功
5、利用gcc编译c语言程序
- 利用cd指令将目录定义到程序所在文件夹
- 编译执行指令:
gcc 文件名
- 编译完成后会在当前文件夹下生成a.out,保存程序输出结果
- 指令执行
./a.out
可查看输出
扩展知识:
-
必须输入 ./a.out ,不能直接 a.out
执行一个程序时,如果只给出程序的文件名而不给出路径,那么Windows和Linux的反应会有所差别——Windows会首先搜寻当前目录,如果没找到则搜索系统目录;Linux则只搜寻系统目录,决不会搜寻当前目录(如果当前目录不是系统目录的话)。显然a.out存放的路径不是系统目录,所以必须给出路径才能执行。.(一个点)代表当前目录。
系统目录;Linux则只搜寻系统目录,决不会搜寻当前目录(如果当前目录不是系统目录的话)。显然a.out存放的路径不是系统目录,所以必须给出路径才能执行。.(一个点)代表当前目录。