2021-04-11

Windows vscode C/C++配置(采用clangd)

1.软件及插件下载.

进入vscode官网下载软件,进入后下载插件如下:
提供高亮,智能提示,补全等功能
在这里插入图片描述
安装Code Runner后会看到右上角有一个小三角形,即一键运行.(ctrl+alt+n)
在这里插入图片描述
C/C++的替代版本,代码提示上速度更快,推荐

其他可选插件:
在这里插入图片描述
小图标美化,养眼
在这里插入图片描述
提供简体中文
在这里插入图片描述
漂亮的主题,插件商店搜索theme,自己挑.
在这里插入图片描述
C/C++工程项目创建,自动生成makefile,方便多文件编写需要

2.环境准备

MinGW配置

  • 下载mingw-w64
    博主采用mingw-w64(以下简称mingw64)作为工具链,以下摘自mingw-w64官网:
    "Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. "
    大意就是mingw64作为原mingw项目的延伸,在win平台上提供gcc编译器等工具,具体版本的下载和mingw的详细介绍参见官网.

  • 将bin目录添加到环境变量:

    mingw64主目录如下,拷贝bin路径 在这里插入图片描述
    按win键,键入“高级”,进入如下选项
    执行顺序:环境变量->编辑->新建
    在这里插入图片描述
    在这里插入图片描述粘贴刚才的bin路径.

  • 检测是否配置成功
    打开powershell或cmd,输入gcc -v,出现以下画面则成功.
    在这里插入图片描述

llvm(clangd需要)

下载llvm,将主目录下的bin目录添加到环境变量,具体步骤大致同上,最后命令行输入:clang -v 出现版本号即成功.

3.vscode配置

在任意位置新建一个文件夹作为工作目录,在vscode里"File->Open Folder"(Ctrl+K+O)打开此文件夹,再点击左栏的"New Floder"创建名为“.vscode”的文件夹,在此文件夹下新建三个文件"settings.json",“tasks.json”,“launch.json”.

  • settings.json 主要进行设置
	{
    "files.defaultLanguage": "c++", // ctrl+N新建文件后默认的语言
    "editor.formatOnType": true, // 输入分号(C/C++的语句结束标识)后自动格式化当前这一行的代码
    "editor.acceptSuggestionOnCommitCharacter": true,
    "editor.formatOnSave": true,
    "editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳转点,不用这个就必须手动触发Intellisense了
    "editor.acceptSuggestionOnEnter": "on", // 我个人的习惯,按回车时一定是真正的换行,只有tab才会接受Intellisense
    // "editor.snippetSuggestions": "top", // (可选)snippets显示在补全列表顶端,默认是inline
    "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入
    "code-runner.saveFileBeforeRun": true, // run code前保存
    "code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false
    "code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息,默认false
    "code-runner.ignoreSelection": true, // 默认为false,效果是鼠标选中一块代码后可以单独执行,但C是编译型语言,不适合这样用
    "terminal.integrated.enableBell": true,
    "code-runner.executorMap": {
        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc '$fileName' -o '$fileNameWithoutExt.exe' -Wall -g -O2 -static-libgcc -std=c11 -fexec-charset=GBK && &'$dir$fileNameWithoutExt'",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt.exe -Wall -g -O2 -std=c++14 -static-libgcc -fexec-charset=GBK  && &$dir$fileNameWithoutExt" // 此处采用CBK编码输出为了输出中文不乱码
    },
    "C_Cpp.clang_format_sortIncludes": true // 格式化时调整include的顺序(按字母排序)
}
  • tasks.json 处理编译任务
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "Compile",
            "command": "cd  ${fileDirname}/../ ; mingw32-make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [
                "$gcc"
            ]
        },
        {
            "type": "shell",
            "label": "Single_Compile",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe",
                "-Wall",
                "-O2",
                "-static-libgcc",
                "-std=c++17",
                "-g"
            ],
            "options": {
                "cwd": "D:\\Env\\mingw64\\bin" //换成自己的mingw bin路径
            },
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

launch.json 调试配置文件,注意有个"preLaunchTask"标签,即调试之前先进行编译.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "2.0.0",
    "configurations": [
        {
            "name": "build and debug mutiple files",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\Env\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Compile"
        },
        {
            "name": "build and debug single file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\Env\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Single_Compile"
        },
    ]
}

上面设置只对单个目录及其子目录产生影响,vscode有个整体的settings.json,那里也可以设置,作用范围是所有工作目录.
File->Preferences->settings,搜索框输入font,点击出现的"edit in settings.json"即进入全局的settings.json配置.
添加如下代码从而转为使用clangd插件.

    // C++/C
    "clangd.semanticHighlighting": true,
    "C_Cpp.intelliSenseEngine": "Disabled", 
    "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉
    "C_Cpp.autocomplete": "Disabled",
    "clangd.path": "c:\\Users\\Administrator\\AppData\\Roaming\\Code\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\11.0.0\\clangd_11.0.0\\bin\\clangd.exe",
    "clangd.arguments": [
        "--completion-style=detailed",
        "--header-insertion=never", // 关闭自动插入头文件
    ],
    "clangd.fallbackFlags": [
        "--target=x86_64-w64-mingw",
    ],

4.运行

随便写一个cpp文件,快捷键ctrl+alt+n一键运行
运行
以上演示的是单文件运行,若要多文件运行就得了解makefile或cmake等构建系统,就不赘述了

部分内容转载自知乎vscode如何配置C++,谭九鼎大佬说得很详细,当初就是从那里入门的,而且也提供了一些实在的东西,如删除中间文件的.bat文件和字体等.

最后贴上我放在gitee上的配置文件链接:mingw和llvm
vscode真的不失为一款优秀的编辑器,插件及其丰富,自行探索即可.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值