记录Visual Studio Code安装C环境

一、安装过程

背景:VSC编辑器是原本就有的,装了Java和python。电脑原来没有装C的编译器,现在按照VSC的说明进行安装。

电脑:Windows_64bit

1、在VSC的Extensions栏,键入C,在下拉框选项中选择C/C++(具体小字为IntelliSense,debugging and code browsing),点击install

2、在VSC的C/C++安装页面下拉到“Overview and tutorials”,点击“GCC and Mingw-w64 on Windows”,进入到浏览器页面“Get Started with C++ and Mingw-w64 in Visual Studio Code”。

3、按照说明安装MSYS2和MinGW

二、所遇问题

1、在安装MinGW的时候,输入命令

pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

返回

error:could not lock database: Permission denied.

原因与解决方法:

msys2的安装过程中,没有使用默认文件夹命名C:\msys,而是擅自添加成C:\Program File(x86)\msys。然而在msys2的官方文档MSYS2中的安装说明有这样一句话:

提示目标安装文件夹的命名不能有空格。

将msys2的原文件夹删除再重新安装,不要动默认命名即可。

2、编辑第一个hello.c文件时,键入

#include <stdio.h>

得到类似这样的报错提示:

解决方法:

Ctrl+Shift+P,在输入框键入“Select IntelliSense Configuration”,有“Use gcc.exe”就选这个,没有就选“Select another compiler in my machine”,然后选择“C:\msys\ucrt64\bin”,即gcc的安装路径,最后出现“Use gcc.exe”。

若是还未正常,即提示找不到头文件,就点击提示框下方的Quick Fix,进入C/C++配置页面,配置好文件路径。

编译器的安装路径,或者说头文件includes这个文件包一定要放在工作区文件夹内,否则在“includespath”这一项的配置会提示无法找到该文件。

3、运行报错

Fatal error: can't create C:\Users\???\AppData\Local\Temp\sjdhkhak.o: No such file or directory

Build finished with error(s).

The terminal process failed to lauch(exit code: -1).

Terminal will be reused by tasks, press any key to close it.

原因与解决办法:

a、(不推荐)文件路径中有中文,要把中文的用户名改成英文。

修改过程非常麻烦,而且伤筋动骨,修改需谨慎,具体参考血的教训!修改windows10用户名从中文到英文_生成已完成,但出现错误。 * 终端进程启动失败(退出代码: -1)。 * 终端将被任务重-CSDN博客

b、修改缓存文件夹路径

错误提示的是目标文件无法生成,而目标文件是中间缓存文件,其所在的文件夹其实是系统默认的临时缓存文件夹,所以中文系统用户名在这个过程中只是一个小障碍,是默认设置造成的,并不是因为用了中文名就不行。既然这样那就新建一个全英文缓存路径供C程序使用即可。

解决方法:

在C盘新建一个空文件夹,是否建子文件夹随个人意愿,总之一整条路径都要是全英文。

打开环境变量设置窗口,在系统环境变量中找到变量名为“TEMP”和“TMP”的变量,修改值为刚刚在C盘新建的文件路径。如此,C程序编译过程所用的缓存文件夹就是全英文的了,而无需修改系统用户名了。

三、总结

1、先读书,再操作

这是第一次自己去搜索官方文档来下载一个编译器,在学java和python的时候都是只学语法不学背景,导致自己不重视环境配置这个环节,一向都是跟着中文帖子进行傻瓜式操作,也不了解安装过程中为什么要下载那么多罗里吧嗦的东西。这次先看了《C Primer Plus》前两章,了解了C语言因UNIX诞生,了解了Linux和Windows就是不同,了解了环境不同,知道GNU,GCC的来头,知道了MinGW是一些库函数和头文件的集合,是为了能在Windows上使用C而存在,而msys2可以用pacman来管理gcc。有一个背景知识的逻辑,操作起来就很有条理。

2、官方文档一定比百度帖子好使

官方文档虽然不会列出具体问题和具体答案,但每个步骤的说明一定是正确的,并且能够让你避开意外奇怪的错误,最后培养自己养成一个规范的好习惯。复制报错去百度得到的答案不一定正确,也不一定是对症下药,不管是哪一种,最终结果都是白搜索。不要养成依赖他人的傻瓜式思维。

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值