当前位置:   article > 正文

vscode配置C++环境_llvm-mingw_64 vscode

llvm-mingw_64 vscode

vscode配置C++环境,clang+mingw-w64

vscode是一个文本编辑器,不是IDE(集成开发环境)。所以自己要装编译器。

win10系统;

准备:

1.vscode

2.MinGW-w64

3.LLVM

以下详解:

第一步:下载且安装 vscode,mingw-w64,llvm;

1.在VScode官网下载安装

链接:https://code.visualstudio.com/ 目录自定义,(我在D盘application下创建了一个VScode目录,来安装它)。

安装时注意勾选以下两项:

img

2.下载安装MinGW-w64和LLVM,注意记住安装路径。

mingw-get-setup.exe下载链接:https://osdn.net/projects/mingw/releases/

页面拉底,点击最左边中间部分的那个 mingw-get-setup.exe

在这里插入图片描述

LLVM下载链接:http://releases.llvm.org/download.html

点击下面Windows (64-bit).sig

在这里插入图片描述

3.安装mingw-w64

下载完成后,开始安装

安装mingw。如下,选择install

在这里插入图片描述

之后,自定义安装路径,这个要记住,添加环境变量的时候要用到,配置vscode的launch.json文件要用到;

我自定义路径为:D:\application\MinGW。

之后,点击continue,安装完毕后,在桌面上会有一个MinGWInstall的图标。点击此图标,运行安装程序,在以下界面选择安装组件:

img

需要勾选的组件有:

img

勾选之后,选择"Installation -> Apply Changes”。可能会由于网速之类的问题报错,但先确定跳过,之后再多试几次。

4.添加环境变量

接下来,添加环境变量,我是打开设置后直接搜的,懒的找了,具体操作:

在这里插入图片描述
点击进去后是这样:

在这里插入图片描述

点击“环境变量”

在这里插入图片描述

点击“编辑”,会出现:

在这里插入图片描述

点击“新建”,将MinGW中的bin文件夹路径添加进去,我的路径为 D:\application\MinGW\bin

检验是否安装成功:

cmd+r在黑框输入gcc -v 按回车;

如果显示的是版本信息,则说明安装成功,如图:

在这里插入图片描述

5.接下来,为了clang,安装LLVM。

同上,但记住自定义的安装路径;

添加环境变量时:选Add LLVM to the system PATH for all users(即第二项,第三项也差不多?)

我的自定义安装目录是:D:\application\LLVM

安装完了以后可能会弹出cmd说MSVC integration install failed。这个是因为Clang默认使用的是msvc的工具链,而我们选择的工具链是MinGW。

检验是否安装成功:

cmd+r在黑框输入clang -v 按回车

显示的是版本信息,则说明安装成功;如图:

在这里插入图片描述
安装后,把MinGW文件夹里面的内容直接复制覆盖到LLVM文件夹里面的内容,然后就可以卸载MinGW了。

第二步:配置vscode

1.打开vscode,安装拓展

打开vscode,点击左边列排的第五个图标,打开应用商店搜索,安装拓展。

在这里插入图片描述
需要安装的拓展有:

Chinese (Simplified) Language Pack for Visual Studio Code

C/C++

C/C++Clang Command Adapter

Code Runner;

第一个包是中文语言包,貌似重启生效?

2.进入文件夹,右键—>Open with Code

进入D:\application\Microsoft VS Code,在里面有两个文件夹(因为我的vscode,llvm,mingw都安装在了D盘的application目录下,并且给它们都创建了一个子目录;)如下:

在这里插入图片描述
第一个文件Microsoft VS Code是vscode安装所在的文件,第二个文件夹是自己新建的。进入自己新建的文件夹,

鼠标右键,选择Open with code

在打开的vscode里面,新建文件:hello.cc

#include<cstdio>
int main(){
    printf("hello,vscode");
    return 0;
}	
  • 1
  • 2
  • 3
  • 4
  • 5

按F5,在弹出来的,选择C++(GDB/LLDB)

再选择第一个(其实随意一个都行)。

在弹出来的launch.json界面,复制替换,看一下是g++.exe还是g++32.exe,注意看以下你自己的安装路径。下面也是。


    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
{  
    "version": "0.2.0",  
    "configurations": [  
        {  
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
            "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
            "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
            "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
            "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
            "environment": [],  
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
            "MIMode": "gdb",  
            "miDebuggerPath": "D:\\application\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
            "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
            "setupCommands": [  
                {   
		    "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        }  
    ]  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

回到hello.cc再按F5,在弹出来的错误提示框里面,点击“配置任务”,随意选择一个;

在弹出来的tasks.json界面,复制替换,同上,看一下是g++还是g++32,注意看以下你自己的安装路径。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++", 
            "command": "D:\\application\\MinGW\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "D:\\application\\MinGW\\bin",
            },
            "problemMatcher": [
                "$gcc"
            ]
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

为了避免编译的时候出现错误代码:-1,-3。还需要加两个文件:c_cpp_properties.json和settings.json。

c_cpp_properties.json如下:复制替换,gdb.exe的路径需要自己注意以下。

 {
    "configurations": [
        {
            "name": "MinGW",
            "intelliSenseMode": "clang-x64",
            "compilerPath":  "D:\\application\\MinGW\\bin\\gdb.exe",
            "includePath": [
                "${workspaceFolder}"
            ],
            "defines": [],
            "browse": {
                "path": [
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

settings.json如下:复制替换

{
    "files.defaultLanguage": "cpp", // ctrl+N新建文件后默认的语言
    "editor.formatOnType": true, // 输入时就进行格式化,默认触发字符较少,分号可以触发
    "editor.snippetSuggestions": "top", // snippets代码优先显示补全

    "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入
    "code-runner.executorMap": {
        "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && clang++ $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c++17 && $dir$fileNameWithoutExt"
    }, // 设置code runner的命令行
    "code-runner.saveFileBeforeRun": true, // run code前保存
    "code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false
    "code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息

    "C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序)
    "C_Cpp.intelliSenseEngine": "Default", // 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools扩展文档
    "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉
    "C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉

    "clang.cflags": [ // 控制c语言静态检测的参数
        "--target=x86_64-w64-mingw",
        "-std=c11",
        "-Wall"
    ],
    "clang.cxxflags": [ // 控制c++静态检测时的参数
        "--target=x86_64-w64-mingw",
        "-std=c++17",
        "-Wall"
    ],
    "clang.completion.enable":true // 效果效果比cpptools要好
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

当然,打开自己新建的文件夹,鼠标右键,选择Open with code,在打开的vscode里面,新建文件:hello.cc

;launch.json;c_cpp_properties.json和settings.json。直接复制覆盖好像也可以?

第三步:F5 试一下能不能运行

配置好以上四个文件之后,按F5,出现以下:貌似就好了?

在这里插入图片描述

当然,打开自己新建的文件夹,鼠标右键,选择Open with code,在打开的vscode里面,新建文件:hello.cc;launch.json;c_cpp_properties.json和settings.json。直接复制覆盖好像也可以?

以上,小白一个,若有bug,望指出;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/239965
推荐阅读
相关标签
  

闽ICP备14008679号