使用 VSCODE + MSVC + CMAKE 的原因
为什么要使用 VSCODE 来写C++并运行,使用 Visual Studio 或者 Clion 不好吗?以上两种IDE我都用过,虽然功能很全面,但是很遗憾,我根本用不到这么多的功能,而且这两个IDE都有一个致命的缺点——太笨重了。每次启动,都需要等待一会。而使用 VSCODE,会给我一种身轻如燕的感觉,启动快,响应快,而且 UI 也看着很舒服。但是 VSCODE 也有一个缺点——需要什么环境都要自己去配置。
而本篇文章,则是讲述我给 VSCODE 配置 C++ 开发的过程。在我配置过程中,我首先尝试使用了 MINGW,但是 MINGW 给我一种感觉,就是静态库残缺不全,且不太匹配Windows系统。因此我将C++编译器目标转向了 MSVC,也就是 Microsoft Visual C++。MSVC 编译器是微软提供的,跟 Windows 是绝对匹配的。而且,如果我们以后对 UE5 感兴趣,也必须要用到 MSVC 编译器。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
配置好 VSCODE + MSVC 后,我们已经可以用来编译 C++ 程序了。如果我们当前项目只有 main.cpp 这一个源文件,那我们可以直接使用 VSCODE 打开终端,然后输入以下命令来编译产生可执行文件:文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
powershell
cl main.cpp
但是,如果我们此时的项目中不止有一个源文件,那么我们就需要把所有源文件全写上,而且每修改一次代码,就要重新产生一次可执行文件,也就是说要写上所有源文件一次。如下所示:文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
powershell
#假设我们当前项目有main.cpp,hello.h,hello.cpp,hi.h,hi.cpp
cl main.cpp hello.cpp hi.cpp
是不是觉得烦透了,这时我们就需要用 CMAKE 来编写当前项目所需的源文件,只需要写一次,以后修改代码也只需要重新运行这个 CMakeLists.txt 即可,这就大大提高了我们的开发效率。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
所以,知道我为什么选择 VSCODE + MSVC + CMAKE 了吧。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
VSCODE 的配置
1.下载 VSCODE
下载 VSCODE,我们需要前往其官网,官网链接如下:VSCODE 官网 点击 DOWNLOAD FOR WINDOWS 下载安装包。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
下载完后,点击执行,然后一路默认安装,当然记得要修改一下安装目录,最好不要安装在C盘。同时记得勾选添加环境变量。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
2.下载插件
如下图所示,只需要下载 C/C++ 和 Chinese(Simplified) 即可。剩下的插件跟本次教程无关,都是我编写其他语言的项目时要用的。其实 VSCODE 也有关于 CMAKE 的插件,但是我觉得太烦了,明明只需要编写一个 CMakeLists.txt 就能满足大家的绝大部分需求,为什么要用插件来自缚手脚了,白白添加自己的使用成本。当然大家想要使用 CMAKE 和 CMAKE TOOLS 这两个插件,我也不反对。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html
到此,VSCODE 的配置部分结束。
MSVC 的配置
1.下载 VS 2022 生成工具
下载链接如下:VS 2022 生成工具
点击用于 Visual Studio 的工具,展开后点击下载第四个,即 Visual Studio 2022 生成工具。
2.下载 MSVC
下载完成后,点击并运行,然后呈现如下:
只需要勾选使用 C++ 的桌面开发即可。记得修改一下安装位置,我这里是已经安装过了,所以左上角显示正在修改,且安装所需空间是0B。你们安装是时候可是跟我不一样的。
3.给 MSVC 配置环境变量
因为我们是单独安装 MSVC 的,VSCODE 这个编辑器不知道MSVC这个编译器在哪,所以我们需要主动配置环境变量。点击Windows键,输入环境变量,选择编辑环境变量:
选择环境变量:
进入如下窗口:
需要配置的环境变量挺多的,首先需要新建四个系统变量,这四个系统变量是后面的基础,点击新建,然后连续创建四个系统变量,如下所示:
上图的第一个系统变量 MSVC,就是我们 MSVC 编译器的路径。先来到我们使用 VS 生成工具下载时设置的目录下,也就是 D:\Software\Visual Studio\2022\BuildTools。然后根据相对路径 \VC\Tools\MSVC\14.40.33807 找到目标目录,复制该路径即可。
后面三个系统变量,其实都是 Windows Kits 的。Windows Kits 默认情况下会下载到 C:\Program Files (x86) 目录下。这是我们无法自主选择的,当然我们可以在使用 VS 生成工具时不选择下载 Windows Kits,然后我们后面再单独下载Windows Kits,这样子我们就可以让 Windows Kits 安装到非C盘中。
仿照我的操作,配置好四个系统变量后,接着还要继续新建两个系统变量,这两个系统变量不需要自己去找路径了,直接复制就行:
perl
#由于需要新建的两个系统变量太长了,我这里直接以代码块的形式呈现出来,大家直接复制粘贴进框框中
变量名: INCLUDE
变量值: %WK10_INCLUDE%\ucrt;%WK10_INCLUDE%\um;%WK10_INCLUDE%\shared;%MSVC%\include;
变量名: LIB
变量值: %WK10_LIB%\um\x64;%WK10_LIB%\ucrt\x64;%MSVC%\lib\x64;
最后还需要双击 Path 系统变量,在里面添加两个环境变量,需要添加的两个环境变量如下,直接复制粘贴:
makefile
环境变量1: %MSVC%\bin\Hostx64\x64
环境变量2: %WK10_BIN%\x64
4.测试 MSVC 配置情况
到此,我们的 MSVC 已经配置好了,我们需要测试一下。右键任务栏的Windows图标,在弹出的窗口中选择终端:
在启动的PowerShell中,输入如下命令:
powershell
PS C:\Users\15440> cl
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.40.33808 版
版权所有(C) Microsoft Corporation。保留所有权利。
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
PS C:\Users\15440> cl --version
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.40.33808 版
版权所有(C) Microsoft Corporation。保留所有权利。
cl: 命令行 warning D9002 :忽略未知选项“--version”
cl: 命令行 error D8003 :缺少源文件名
PS C:\Users\15440>
发现 cl 命令可以正常使用,cl 其实就是 MSVC 编译器的名字。
CMAKE 的配置
1.下载 CMAKE
进入 CMAKE 官网下载 CMAKE,官网链接如下: CMAKE 下载,选择 Windows x64 Installer 并下载:
下载完后,点击运行这个安装包,除了安装位置需要修改外,还需要勾选添加 CMAKE 环境变量这个选项。即把CMAKE安装目录下的bin目录放入 Path 变量中。如果没有,我们也可以手动添加:
2.测试 CMAKE 配置情况
同样是在PowerShell中输入如下命令:
powershell
PS C:\Users\15440> cmake --version
cmake version 3.29.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
PS C:\Users\15440> cmake --help
#弹出一堆说明文字,我这里就不复制了,你们知道就行
PS C:\Users\15440>
出现上述情况,即是安装 CMAKE 成功。
开发 C++ 项目
1.创建一个项目
我这里就不一步一步演示了,大家只需要知道,在这里我们所需的 C++ 项目,里面要有后缀名为cpp,h,hpp或者c的文件。我这里直接有一个现成的项目,如下所示:
powershell
PS D:\Projects\VS-Projects\BooksManageSystem> ls
目录: D:\Projects\VS-Projects\BooksManageSystem
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/4/11 15:58 1942 book.cpp
-a---- 2024/4/11 15:52 1052 book.h
-a---- 2024/5/25 17:19 360 CMakeLists.txt
-a---- 2024/4/11 15:58 8446 manage.cpp
-a---- 2024/4/11 15:52 616 manage.h
-a---- 2024/4/11 15:40 71 manage.txt
-a---- 2024/4/11 15:58 8843 reader.cpp
-a---- 2024/4/11 15:57 732 reader.h
-a---- 2024/4/11 15:45 1569 store.txt
-a---- 2024/4/11 15:44 105 student.txt
-a---- 2024/4/11 15:58 8829 test.cpp
PS D:\Projects\VS-Projects\BooksManageSystem>
使用VSCODE打开这个目录,然后新建终端,创建一个build目录,并进入其中,如下所示:
powershell
PS D:\Projects\VS-Projects\BooksManageSystem> mkdir build
目录: D:\Projects\VS-Projects\BooksManageSystem
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2024/5/26 0:57 build
PS D:\Projects\VS-Projects\BooksManageSystem> ls
目录: D:\Projects\VS-Projects\BooksManageSystem
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2024/5/26 0:57 build
-a---- 2024/4/11 15:58 1942 book.cpp
-a---- 2024/4/11 15:52 1052 book.h
-a---- 2024/5/25 17:19 360 CMakeLists.txt
-a---- 2024/4/11 15:58 8446 manage.cpp
-a---- 2024/4/11 15:52 616 manage.h
-a---- 2024/4/11 15:40 71 manage.txt
-a---- 2024/4/11 15:58 8843 reader.cpp
-a---- 2024/4/11 15:57 732 reader.h
-a---- 2024/4/11 15:45 1569 store.txt
-a---- 2024/4/11 15:44 105 student.txt
-a---- 2024/4/11 15:58 8829 test.cpp
PS D:\Projects\VS-Projects\BooksManageSystem> cd build
PS D:\Projects\VS-Projects\BooksManageSystem\build>
2.编写 CMakeLists.txt
紧接着,先不要动这个终端,我们在项目根目录中,编写 CMakeLists.txt,上面我给大家演示时,已经编写过了,其内容如下所示:
txt
#最低支持的CMAKE版本
cmake_minimum_required(VERSION 3.29.1)
#项目名字
project(MyProject)
#自动检查系统中可用的C++编辑器, 我已经在系统中安装了MSVC
#设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
#将该目录下所有的源文件都关联起来
aux_source_directory(. CPP_LIST)
#生成一个名叫MyProject.exe的可执行文件
add_executable(MyProject ${CPP_LIST})
大家根据自己情况进行编写 CMakeLists.txt,如果大家还没有这个文件,可以手动创建。
3.使用 CMAKE 编译项目并产生可执行文件
继续使用刚才的终端,该终端处于build目录下,先输入cmake .. 来解析CMakeLists.txt,如下所示:
powershell
PS D:\Projects\VS-Projects\BooksManageSystem\build> cmake ..
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631.
-- The C compiler identification is MSVC 19.40.33808.0
-- The CXX compiler identification is MSVC 19.40.33808.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/Software/Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/Software/Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (11.0s)
-- Generating done (0.0s)
-- Build files have been written to: D:/Projects/VS-Projects/BooksManageSystem/build
PS D:\Projects\VS-Projects\BooksManageSystem\build>
然后输入 cmake --build . 来产生可执行文件:
powershell
PS D:\Projects\VS-Projects\BooksManageSystem\build> cmake --build .
适用于 .NET Framework MSBuild 版本 17.10.4+10fbfbf2e
1>Checking Build System
Building Custom Rule D:/Projects/VS-Projects/BooksManageSystem/CMakeLists.txt
book.cpp
manage.cpp
reader.cpp
test.cpp
正在生成代码...
MyProject.vcxproj -> D:\Projects\VS-Projects\BooksManageSystem\build\Debug\MyProject.exe
Building Custom Rule D:/Projects/VS-Projects/BooksManageSystem/CMakeLists.txt
PS D:\Projects\VS-Projects\BooksManageSystem\build>
产生的可执行文件就在build目录下的Debug目录下,如下所示:
powershell
PS D:\Projects\VS-Projects\BooksManageSystem\build> ls
目录: D:\Projects\VS-Projects\BooksManageSystem\build
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2024/5/26 1:06 CMakeFiles
d----- 2024/5/26 1:06 Debug
d----- 2024/5/26 1:06 MyProject.dir
d----- 2024/5/26 1:06 x64
-a---- 2024/5/26 1:04 45050 ALL_BUILD.vcxproj
-a---- 2024/5/26 1:04 296 ALL_BUILD.vcxproj.filters
-a---- 2024/5/26 1:04 14116 CMakeCache.txt
-a---- 2024/5/26 1:04 1468 cmake_install.cmake
-a---- 2024/5/26 1:04 3507 MyProject.sln
-a---- 2024/5/26 1:04 54731 MyProject.vcxproj
-a---- 2024/5/26 1:04 998 MyProject.vcxproj.filters
-a---- 2024/5/26 1:04 45124 ZERO_CHECK.vcxproj
-a---- 2024/5/26 1:04 539 ZERO_CHECK.vcxproj.filters
PS D:\Projects\VS-Projects\BooksManageSystem\build> cd Debug
PS D:\Projects\VS-Projects\BooksManageSystem\build\Debug> ls
目录: D:\Projects\VS-Projects\BooksManageSystem\build\Debug
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/5/26 1:06 219136 MyProject.exe
-a---- 2024/5/26 1:06 1716224 MyProject.pdb
PS D:\Projects\VS-Projects\BooksManageSystem\build\Debug>./MyProject.exe
然后我们可以输入 ./MyProject.exe来运行,也可以在文件资源管理器中双击运行。
到此,我的教程结束,再见。
评论