VScode下C++环境的配置以及可能出现的问题

首先,下载好MinGW,以及相关编译器的下载。

将MinGW\bin放置于Path路径中(环境变量的配置)

前文有讲过,可以使用命令gcc -v检验是否安装成功。

其次,在VScode里安装C++插件,安装结束后,重启VScode。

  1. 新建一个文件夹,用于存放Cpp代码
  2. 在新建的文件夹下,建立一个名为.vscode的文件夹,里面用于保存以下文件
    c_cpp_properties.json
    launch.json
    tasks.json
  3. c_cpp_properties.json
    {
        "configurations": [
            {
                "name": "Win32",
                "includePath": [
                    "${workspaceRoot}",
                    "d:/software/mingw/include/**",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/mingw32",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/backward",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../include",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include-fixed"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "__GNUC__=6",
                    "__cdecl=__attribute__((__cdecl__))"
                ],
                "intelliSenseMode": "msvc-x64",
                "browse": {
                    "limitSymbolsToIncludedHeaders": true,
                    "databaseFilename": "",
                    "path": [
                    "${workspaceRoot}",
                    "d:/software/mingw/include/**",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/mingw32",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/backward",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../include",
                    "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include-fixed"
                    ]
                }
            }
        ],
        "version": 4
    }

  4. launch.json
    {  
        "version": "0.2.0",  
        "configurations": [  
            {  
                "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
                "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
                "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
                "program": "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
                "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
                "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
                "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
                "environment": [],  
                "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
                "MIMode": "gdb",  
                "miDebuggerPath": "D:/Software/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  
                    }  
                ]  
            }  
        ]  
    }

  5. task.json
    {
        //"label": "(gdb) Launch",  //任务的名字,就是刚才在命令面板中选择的时候所看到的,可以自己设置
        "version": "2.0.0",
        "command": "g++",
        "args": [
            "-g",
            "${file}",
            "-o",
            "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"
        ], // 编译命令参数
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": [
                "relative",
                "\\"
            ],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
    

需要注意的是,c_cpp_properties.json文件中的includePath以及path中的路径需要根据自己的实际路径进行更改。includePath与path具有相同的值。同样,launch.json文件中的miDebuggerPath也应该为自己电脑中的gdb.exe文件的绝对路径。

可以使用命令gcc -v -E -x c++ -  获取includePath的值。

同样,我对task.json文件中的args值进行了修改,这样可以将生成的可执行文件统一放在了一个exe的文件夹下。使用参数值

"${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"

结尾

以上就已经完成了,VScode中C++的环境的搭建。这是可以在.vscode的上一级目录下建立新的文件夹用于cpp文件的存储。创建一个cpp文件,执行即可。

可能遇到的问题,这里直接说结果吧,因为我在执行的时候,总是遇到无法找到生成的可执行文件这个问题,我一度以为是launch.json,c_cpp_properties.json文件中的路径问题。经过折磨之后,终于发现是由主目录名字为中文所引起的。所以,希望伙伴们的文件夹、文件的名字为英文,养成一个好的习惯。

补充:workspace:表示当前打开的文件夹

  1. ${worksapceFolder}:代表当前workspace的文件夹路径,
  2. ${fileBasenameNoExtension}.exe:表示不带生成  当前文件名.exe的可执行文件
  3. ${workspaceRoot}:表示当前打开的文件夹的绝对路径
  4. ${workspaceRootFolderName}:表示workspace的文件夹名
  5. ${file}:当前打开正在编辑的文件的绝对路径
  6. ${relativeFile}:从当前打开的文件夹到当前打开的文件的绝对路径
  7. ${fileBasenameNoExtension}:当前文件的文件名,不带后缀
  8. ${fileBasename}:当前文件的文件名
  9. ${fileExtname}:当前打开的文件的后缀名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值