【C语言教程】在 VSCODE 中使用 MSVC 和 CMAKE 进行 C++ 项目的开发

零 C语言教程评论92字数 7663阅读25分32秒阅读模式

使用 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

image.png文章源自灵鲨社区-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

image.png文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/15367.html

到此,VSCODE 的配置部分结束。

MSVC 的配置

1.下载 VS 2022 生成工具

下载链接如下:VS 2022 生成工具

点击用于 Visual Studio 的工具,展开后点击下载第四个,即 Visual Studio 2022 生成工具

image.png

2.下载 MSVC

下载完成后,点击并运行,然后呈现如下:

image.png

只需要勾选使用 C++ 的桌面开发即可。记得修改一下安装位置,我这里是已经安装过了,所以左上角显示正在修改,且安装所需空间是0B。你们安装是时候可是跟我不一样的。

image.png

3.给 MSVC 配置环境变量

因为我们是单独安装 MSVC 的,VSCODE 这个编辑器不知道MSVC这个编译器在哪,所以我们需要主动配置环境变量。点击Windows键,输入环境变量,选择编辑环境变量:

image.png

选择环境变量:

image.png

进入如下窗口:

image.png

需要配置的环境变量挺多的,首先需要新建四个系统变量,这四个系统变量是后面的基础,点击新建,然后连续创建四个系统变量,如下所示:

image.png

image.png

image.png

image.png

上图的第一个系统变量 MSVC,就是我们 MSVC 编译器的路径。先来到我们使用 VS 生成工具下载时设置的目录下,也就是 D:\Software\Visual Studio\2022\BuildTools。然后根据相对路径 \VC\Tools\MSVC\14.40.33807 找到目标目录,复制该路径即可。

image.png

后面三个系统变量,其实都是 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图标,在弹出的窗口中选择终端:

image.png

在启动的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 并下载:

image.png

下载完后,点击运行这个安装包,除了安装位置需要修改外,还需要勾选添加 CMAKE 环境变量这个选项。即把CMAKE安装目录下的bin目录放入 Path 变量中。如果没有,我们也可以手动添加:

image.png

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来运行,也可以在文件资源管理器中双击运行。

到此,我的教程结束,再见。

零
  • 转载请务必保留本文链接:https://www.0s52.com/bcjc/cyyjc/15367.html
    本社区资源仅供用于学习和交流,请勿用于商业用途
    未经允许不得进行转载/复制/分享

发表评论