VS Code配置C++开发环境(MSVC)
前置知识
这些内容如果感兴趣可以看一下,不看也不妨碍配置环境,因为我会一步步教你配置。(但我希望你还是看一下,毕竟我写了好久🤣)
C/C++编译器有哪些
注意我们说的是编译器,而不是集成开发环境(IDE,Integrated Development Environment)。我们平常用的Codeblocks,Visual Studio Code,Dev C++等软件都是开发环境,而不是编译器。
常用的C/C++编译器(更确切地说是编译器套件)有:GCC、MinGW、MSVC等。不同的编译器附有不同的库文件,如果某段代码只用了标准库,那么这段代码很可能用任意C/C++编译器都可以编译通过;而如果某段代码用了特定编译器独有的库文件,那这段代码很可能只能用特定编译器才能编译通过,甚至对该编译器的版本也有要求。
Windows系统的环境变量
什么是环境变量
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息(不好理解)。
按照下面的方式查看Windows 10的环境变量
可以看到环境变量分为两部分:用户变量和系统变量
- 用户变量:只对当前用户生效,优先级高于系统变量
- 系统变量:对所有用户生效
你也可以将环境变量理解为一个指针。我们在环境变量中定义一个名为“JAVA_HOME”的变量,它指向jdk的安装目录。在某段代码中你可能经常使用jdk作为参数,但如果jdk的安装目录变了,怎么办?你在程序中如果直接使用jdk的绝对路径,那你就从代码中找出来一个个地改吧;而如果你在程序中使用JAVA_HOME这个环境变量,当jdk的安装目录发生变化时,你只要改一下JAVA_HOME的内容即可,而你的代码无需任何修改,因为你的代码使用的是JAVA_HOME,而不是jdk的绝对路径。
环境变量有什么用
想象这样一个场景:你编写了一个个性化的计算器软件,软件的路径为:D:\softwares\myself\calc.exe
当你每次启动时,要么用文件管理器找到这个软件双击运行,要么通过命令行D:\softwares\myself\calc.exe
执行。诚然,这两种方式耗费精力都差不多,因为calc.exe并没有位于很深层的目录下。那如果calc.exe位于第10层,甚至第100层目录呢,是不是每次打开这个软件很费劲?因为你要么需要打开100层文件夹,要么在命令行输入calc.exe的路径,都是很费劲的方法(当然你可以创建快捷方式,但我们先不考虑这种方法)。
这时候,你就可以把calc.exe所在的目录添加到用户变量的Path
变量下(你也可以添加到系统变量的Path
下,这样就对所有用户生效了),这样每次执行calc.exe都不需要在命令行中输入那么一长串路径,而只需要输入calc.exe或者calc即可。
Path环境变量
Path
是个很重要的环境变量,他里面存储的一般是一系列可执行文件的目录。
下图所示是系统变量中的Path
存储的内容,每一行代表一个目录,许多目录都是以“bin”(binary的缩写)结尾,代表该目录下存储了一些二进制的可执行文件。执行这些目录下的可执行文件不需要加一长串的路径,只需要在命令行输入可执行文件的名称即可。
其他环境变量
比如我们前面提到的“JAVA_HOME”环境变量,这其实就是一个普通的环境变量。你可以随便定义自己的环境变量,比如isjks:wwoqsi
。你可以在命令行中执行echo %isjks%
,会输出wwoqsi
。当然这个并没有任何意义,我只是告诉你你可以随便定义自己的环境变量,无论这个变量有没有什么用。
在上面一张图中,我们发现有些被百分号“%”包裹起来的东西,这些被包裹起来的,其实是已经定义的环境变量。比如SystemRoot
的内容就是“C:\WINDOWS”。有些环境变量并没有在环境变量列表中被列出来,因此无法直接看到它的值。如果你对任何环境变量感兴趣,可以在命令行中执行echo %<ENV_VAR>%
来查看它代表的内容。
安装Visual Studio Code
这个没有难度,自己安装即可。vscode安装完成后会把自己加到环境变量,提示需要重启一下电脑。
安装VIsual Studio及相关附件
在这里下载installer,选择社区版即可。
接下来运行安装器,需要下载一些东西,之后如下图安装Community版
另外还需要勾选“使用C++的桌面开发“,这会安装Windows SDK和MSVC工具链。需要注意的是,如果你正在使用Windows10系统,在右侧”安装详细信息“里面取消勾选”Windows 11 SDK“,并且往下找到”Windows 10 SDK“并勾选。Win11 SDK能不能在Win10上面工作我没有研究。接下来点击安装即可,可能会花费10分钟左右的时间,具体看你的网络状况。
安装完成之后启动Visual Studio。
在Visual Studio中编写C++程序
如下图所示,创建一个C++控制台应用。
VS已经自动写了一个HelloWorld程序,按照它的提示运行这个程序,可以看到一个在命令行窗口输出了“HelloWorld”。至此可验证相关的工具都已经安装完成并正常工作。
程序是如何执行的
为什么我们什么都没有配置,程序就跑起来了,而VS Code却不行?
当然是Visual Studio已经给我们配置好了🤣而VS Code就需要我们手动配置了。
右键点击解决方案,点击属性,会弹出一个属性页,如下图所示。
在这一页可以看到很多以$符开头的变量名称,像极了前面提到的环境变量。
切换到“VC++目录”这个标签页,可以看到更多以$符开头的变量。
可以看到,这个标签页定义了一些外部文件目录和库目录,这些定义是必须的,正是因为VS Code并没有这些定义,所以它不能跑C++程序。
点击“库目录”,在出现的下拉箭头中选择“浏览”,会出现一个窗口,在这个窗口中点击“宏”,就会出现以$开头的键值对,这就是Visual Studio预定义的一些内部变量(我也不知道称之为什么,暂且称为“内部变量”),是不是很像之前提到的环境变量😁
好了,现在我们应该了解了,Visual Studio在创建C++项目时就帮我们配置好了比如库目录这些东西,VS Code之所以不能跑C++程序就是因为缺少这些配置。
设置环境变量
下面就不多叙述了,总体来说就是把VS Code运行C++程序需要的依赖添加到环境变量中,接下来环境变量以K:V
形式表达。另外还需要注意,如果你安装的是VS2022,那么安装目录为C:\Program Files\Microsoft Visual Studio\2022\Community
;而如果是低于2022的版本,比如2019,它的安装目录为C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
。发现了吗?主要差别就是2022把安装目录挪到了Program Files
里面,而不是Program Files (x86)
,所以接下来的配置需要根据你自己的情况做一些更改。
- 系统环境变量添加条目:
VCTools: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools
- 系统环境变量添加条目:
WIN10KITS: C:\Program Files (x86)\Windows Kits\10
- 系统环境变量添加条目:
MSVC_VERSION: 14.37.32822
- 系统环境变量添加条目:
WIN_SDK_VERSION: 10.0.20348.0
- 系统环境变量添加条目:
INCLUDE: %VCTools%\MSVC\%MSVC_VERSION%\include;%WIN10KITS%\Include\%WIN_SDK_VERSION%\ucrt;%WIN10KITS%\Include\%WIN_SDK_VERSION%\um;%WIN10KITS%\Include\%WIN_SDK_VERSION%\shared;
- 系统环境变量添加条目:
LIB: %WIN10KITS%\Lib\%WIN_SDK_VERSION%\um\x64;%WIN10KITS%\Lib\%WIN_SDK_VERSION%\ucrt\x64;%VCTools%\MSVC\%MSVC_VERSION%\lib\x64;
- Path系统环境变量添加条目:
%VCTools%\MSVC\%MSVC_VERSION%\bin\Hostx64\x64
第1、3、4条的内容需要根据你的实际情况修改。
把上面七条环境变量按顺序添加即可(后面3条是基于前面4条的,如果你看过前面的环境变量部分就会知道,后面三条可以直接复制😋)
验证环境变量
打开命令行,按下图输入命令,应该和我的输出类似
配置VS Code的环境
上面环境变量已经配置结束,接下来开始配置VS Code。
打开Windows命令行,依次执行一下命令:
mkdir CppTest
: 创建CppTest文件夹cd CppTest
:进入CppTest文件夹type nul > hello.cpp
: 创建hello.cpp空文件code .
:使用VS Code打开当前目录
接下来VS Code打开并弹窗,选择信任文件夹,你就可以看到有一个hello.cpp空文件,在里面写一个HelloWorld。
忘记说了,你还要在VS Code的插件市场安装下图这个插件
现在你的VS Code应该是这样的
接下来跟我操作
-
在上方搜索框输入
> Edit Configurations (UI)
,点击高亮的选项,之后会弹出新标签页,是一些配置选项,选择默认直接关掉标签页即可,之后会生成一个隐藏文件夹.vscode
,里面有自动生成的c_cpp_properties.json
文件 -
在上方搜索框输入
> Default Build Task
,点击高亮的选项,并选择C/C++ cl.exe 生成活动文件
,之后会在.vscode
文件夹自动生成tasks.json
-
之后点击菜单栏“运行 - 以非调试模式运行“,调试器选择”C/C++ (Windows)“,之后会在控制台打印”Hello World“
-
all done!
一些疑问
为什么我们添加的环境变量的Key是LIB、INCLUDE?有什么特殊规定吗?cl.exe是什么?
强烈建议阅读微软官方文档
我就不瞎解释了,因为我理解也不太够🤣
笔者才疏学浅,本文对许多技术细节的解释并不充分,甚至有误,因此如果你对本文有任何见解,欢迎指正🥳🥳🥳
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)