汕尾海湾 发表于 2025-4-4 23:14:49

CMake在Windows环境下Visual Studio Code的使用

1,安装下载

地点:Visual Studio Code - Code Editing. Redefined
https://i-blog.csdnimg.cn/direct/f6bd685383ed44f8826ec37d6068ee3f.png
https://i-blog.csdnimg.cn/direct/ed6231b953194be8aafb93ac15e287c4.png
双击安装
https://i-blog.csdnimg.cn/direct/05a8fd438f854f7cbbfba0899d6e3e1a.png
选择安装路径
https://i-blog.csdnimg.cn/direct/f1547482c27f4757aecfbdf4a27304aa.png
https://i-blog.csdnimg.cn/direct/5af0550a345343f1864c0bc6e3f84b05.png
https://i-blog.csdnimg.cn/direct/38173413cf2748228e639a75fb215267.png
https://i-blog.csdnimg.cn/direct/a0137c5c7c1940e0aacffca311034e20.png
https://i-blog.csdnimg.cn/direct/1a6245fecb2a411ea8f44c1eb7f1dbb7.png
可勾选微软的AI工具
https://i-blog.csdnimg.cn/direct/da5b30aae6894dfdb4ecd35eec09cd64.png

2,环境先容

2.1 ,界面先容

https://i-blog.csdnimg.cn/direct/224f3d3690d14ccf849ce89c8b287cd5.png
2.2中文包的安装

https://i-blog.csdnimg.cn/direct/add380fe0745405d8235dc58607e9934.png

下载中文简体
https://i-blog.csdnimg.cn/direct/90ba69bef5b645a5a5111909d7d10b97.png
汉化后的界面
https://i-blog.csdnimg.cn/direct/669c428a01944ebd9590b4e6ac4d4349.png
2.3 设置C/C++环境

VSCode安装好之后,我们还是要知道,VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。
所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。
为了方便,我们就使用MinGw-w64 ,MinGw-w64移植到windows平台的一个gcc编译器,使用起来也是非常方便的。
下面我们就演示怎么下载和设置MinGw-w64
地点:https://sourceforge.net/projects/mingw-w64/

https://i-blog.csdnimg.cn/direct/c7da35ecec2742a0a29e8c26f5370bac.png

https://i-blog.csdnimg.cn/direct/518efe815fa648aba95bb21675268b1f.png
https://i-blog.csdnimg.cn/direct/66011c565fe147c29b58bf594d4084c2.png
https://i-blog.csdnimg.cn/direct/e94fddae919b4e3ab37da1e2e04c52e4.png
解压后我们会得到一个mingw文件夹
https://i-blog.csdnimg.cn/direct/4d11d501e3b545b7a849a3a30e37c4f1.png
将其复制到你需要的位置
双击打开并进入bin文件夹内,这里有我们的gcc(C语言编译器)、g++(C++编译器),gdb调试器(可以使用断点调试)等
   这里说gcc是C语言编辑器,g++是C++的编译器其实不太准确,因为gcc也可以编译C++,但是需要自己设置链接C++的库,g++默认链接了C++的库。
https://i-blog.csdnimg.cn/direct/d2bb4b133a564bc197d419760ded7921.png
复制bin路径
https://i-blog.csdnimg.cn/direct/cfe5a56180224a158eaaa0ecfb206e98.png
https://i-blog.csdnimg.cn/direct/d8a719c4d0824e66813f6e7558cce5c6.png
!如许我们的预备环境就设置好了
我们可以使用一些下令来测试一下,按win+r输入cmd打开终端
以此输入
https://i-blog.csdnimg.cn/direct/36778061805349139355f4a29aaa0ff2.png
https://i-blog.csdnimg.cn/direct/a344e260e8ea40abb700fab3a19b78d7.png
2.4  

安装vscode并安装一下必备的插件

vscode安装各人应该都会,如果通过浏览器下载vscode速度比力慢的话,可以复制下载链接放到迅雷里面去下载
安装必备插件
我们需要安装两个插件

[*] 安装C/C++插件:
https://i-blog.csdnimg.cn/direct/aa090cede9f749d69ecc677cdbdbd2b4.png
3  设置

设置阶段我提供了两类设置方式,各人按需选择即可
   第一类 使用vscode插件举行设置
这类设置方法一般来说不需要自己动手设置内容,只需要安装一下插件即可。
优点:使用简单,基本上拿来就可以使用,比力适合C/C++初学者(因为老师们貌似上来都是直接教C/C++语法,而不是C/C++编译器、C/C++标准、C/C++项目构成等一些C/C++基本内容)以及一些不需要复杂功能的同学。
缺点:可扩展性差(使用插件基本上是用插件设置好的下令去编译运行程序,如果你需要改或扩展一些设置的话,你得对一些下令很熟悉,当然这不是重点,重点是使用插件设置一般只能有一个有用的设置项,例如:如果你想从调试模式切换到编译模式,你得手动更改一下设置文件,而不是像大部门编辑器那样,选择一个设置去运行)
样例一:使用run code插件

   因为插件设置实质上是用它提供的指令举行编译执行,因此无法直接使用断点调试功能,需要对设置举行一定的更改
    这里以使用run code为例,在扩展里搜索code runner这个插件并安装
https://i-blog.csdnimg.cn/direct/50d954b6e4e4487f97082b030837aefa.png
https://i-blog.csdnimg.cn/direct/a4eb8d526fce4ac1953a86a58ef83d94.png
   程序是在下面的输出栏中运行的,是无法输入内容的,所以我们还需要改一些内容,以便能够正常输入内容。
    找到code runner扩展,点击扩展设置,找到Run In Terminal并勾上,如许就能够正常地输入内容了。
https://i-blog.csdnimg.cn/direct/821780ad00e541c682f7c07a459168be.png
https://i-blog.csdnimg.cn/direct/7182f861812e4fd7968126fae9aaa5e0.png
https://i-blog.csdnimg.cn/direct/5ec600e987a543978885719c3fa05d3d.png
第二类 自界说设置

这类设置方法要自己手写设置内容,比力复杂,但可扩展性强
优点:可扩展性强
缺点:设置比力复杂、需要一定的知识储备
样例一:使用windows启动,让编译的文件放在同目次下的build文件夹中,并在黑窗(cmd)中运行
在设置之前,我们需要先创建一个.cpp文件,这里我创建了一个Test文件夹,并写了一个hello world。
   请注意,一切的设置都要从一个cpp文件的编辑界面开始,否则vscode的提示大概会不太一样
    样例一的设置方式因为本质上就是直接编译运行,因此无法使用断点调试功能
https://i-blog.csdnimg.cn/direct/767d6150475d46ecba69d0ac706d0ff3.png
第一步:设置基本环境
按下ctrl + shift + p打开下令面板,输入C/C++,找到C/C++编辑设置(UI)打开
https://i-blog.csdnimg.cn/direct/6f62414579e743188849cf0a329c35d0.png
你可以在这个页面中选择编译器,更改C/C++标准,还可以更改IntelliSense 模式
   PS:IntelliSense 模式和文本解析有关,如果你选择的IntelliSense模式和你的编译器不匹配,那么会报错,这就会引起例如写代码的时间没有提示、编辑器说代码精确、编译的时间却不精确等问题
https://i-blog.csdnimg.cn/direct/d56adb9eda4c499a8993182a31181545.png
这里可以选择你需要的C/C++标准
https://i-blog.csdnimg.cn/direct/ed35b3b2bfb94569aa78fc5abf51cd2b.png
设置的内容会自动写入.vscode文件夹中的c_cpp_properties.json文件中。
这是我的c_cpp_properties.json文件内容
{
    "configurations": [
      {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "F:/C++Development/mingw-w64/13.1.0/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64"
      }
    ],
    "version": 4
}
https://i-blog.csdnimg.cn/direct/9c7ab5c419904c34b5f51076868d0a1a.png
第二步:设置task编译使命
按下ctrl + shift + p打开下令面板,输入task,找到 使命:设置使命 打开。
https://i-blog.csdnimg.cn/direct/30b13dab3bc941bb8e41a3ff184f7919.png
https://i-blog.csdnimg.cn/direct/906ffea8a9c64b5caf7aa8c1be386b4b.png
这里,先容一下文件内需要注意的设置项
https://i-blog.csdnimg.cn/direct/dc39933801df4b23b2a99c7e0cefabe6.png
这是我的task.json中的设置内容
{
        "version": "2.0.0",
        "tasks": [
                {
                        "type": "cppbuild",
                        "label": "C/C++: g++.exe 生成活动文件",
                        "command": "E:/Microsoft VS Code/mingw64/bin/g++.exe",
                        "args": [
                                "-fdiagnostics-color=always",
                                // 这个命令的作用是转化成GBK编码,可以防止终端中出现乱码
                // 乱码问题原因:终端编码和vscode编码不一致。
                // 国内大部分电脑终端编码默认是gbk,而vscode编码默认是utf-8,所以会出现问题乱码问题。
                // 加上这个命令后先转化为gbk编码后编译,就不会出现乱码了。
                                // "-fexec-charset=GBK",
                                "-g",
                                "${file}", // 如果要多文件编译,改成 "${fileDirname}\\*.c*" 可以把c和cpp文件都作为cpp文件编译。
                                "-o",
                                // 这里加了一个build,让编译后的程序在同目录下的build文件夹中
                                "${fileDirname}\\${fileBasenameNoExtension}.exe"
                        ],
                        "options": {
                                "cwd": "E:/Microsoft VS Code/mingw64/bin"
                        },
                        "problemMatcher": [
                                "$gcc"
                        ],
                        "group": "build",
                        "detail": "编译器: E:/Microsoft VS Code/mingw64/bin/g++.exe"
                }
        ]
} 第三步:设置launch.json启动使命
因为现在的C/C++插件不支持通过下令面板创建使命,所以我们需要手动建一个launch.json文件
建完后打开,我们会发现右下角有一个添加设置
https://i-blog.csdnimg.cn/direct/bd1cdf8b5e674666a0bb07122fb7a562.png
选择windows启动
https://i-blog.csdnimg.cn/direct/d7c7f8cfc6144ef8a5844ba17d820e96.png
{
    "configurations": [
      
      {
            "name": "(Windows) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            // 这项是启动的程序位置,把tasks.json中的生成文件的路径复制粘贴过来就可以了
            "program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            // 这项改为integratedTerminal,就和code runner一样是在vscode内置终端中运行了
            "console": "externalTerminal"
             // 这一项一开始没有,要自己写,代表启动前先执行的编译任务,把tasks.json中的label复制粘贴过来就可以了
      }

    ]
}
https://i-blog.csdnimg.cn/direct/0c0b39be85e546dc9f84ba17379c16e8.png样例二:使用gdb启动,让编译的文件放在同目次下的build文件夹中,并在vscode中运行(可以使用断点调试)


样例二使用了gdb调试器,所以能使用vscode的断点调试功能。

样例二与样例一稍作更改的地方是launch启动使命和task编译使命,因此就不配图演示了,只需要对照有注释的地方举行更改即可。
task编译使命
这是我的编译使命:
{
        "version": "2.0.0",
        "tasks": [
                {
                        "type": "cppbuild",
                        "label": "C/C++: g++.exe 生成活动文件",
                        "command": "E:/Microsoft VS Code/mingw64/bin/g++.exe",
                        "args": [
                                "-fdiagnostics-color=always",
                                // 这个命令的作用是转化成GBK编码,可以防止终端中出现乱码
                // 乱码问题原因:终端编码和vscode编码不一致。
                // 国内大部分电脑终端编码默认是gbk,而vscode编码默认是utf-8,所以会出现问题乱码问题。
                // 加上这个命令后先转化为gbk编码后编译,就不会出现乱码了。
                                "-fexec-charset=GBK",
                                "-g",
                                "${file}", // 如果要多文件编译,改成 "${fileDirname}\\*.c*" 可以把c和cpp文件都作为cpp文件编译。
                                "-o",
                                // 这里加了一个build,让编译后的程序在同目录下的build文件夹中
                                "${fileDirname}\\build\\main.exe"
                        ],
                        "options": {
                                "cwd": "E:/Microsoft VS Code/mingw64/bin"
                        },
                        "problemMatcher": [
                                "$gcc"
                        ],
                        "group": "build",
                        "detail": "编译器: E:/Microsoft VS Code/mingw64/bin/g++.exe"
                }
        ]
} launch调试使命
   注意:如果你不是copy这里给出的代码,而是自己像上文一样点击添加设置然后修改,请选择gdb启动而不是windows启动。
{
    "configurations": [
    {
      "name": "(gdb) 启动", // 调试任务的名称,改一个你想要的
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\build\\main.exe",// 入口程序的位置,和task任务生成的程序位置相同
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "E:/Microsoft VS Code/mingw64/bin/gdb.exe", // gdb调试器的位置,和gcc、g++在一个目录下
      "setupCommands": [
            {
                "description": "为 gdb 启用整齐打印",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description": "将反汇编风格设置为 Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            }
      ],
      "preLaunchTask": "C++调试"// 启动前调用编译任务
    }
    ]
} https://i-blog.csdnimg.cn/direct/311761f81fb641ae9e12560f143e5a69.png

常见问题

Q:终端出现乱码怎么办?

A:在编译的时间加上"–exec-charset=GBK",具体可以看本教程的示例,两类设置方式中都有讲解
Q:在第二种设置方式中,选择task使命时,没有g++、gcc选项怎么办?

A:copy教程中的设置,然后对照图片说明举行更改。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: CMake在Windows环境下Visual Studio Code的使用