vscode c++ 环境配置(终极版)

慈云数据 2024-03-19 技术支持 87 0

1. window系统 c++ 环境配置

1.1 配置MinGw编译器

(1)下载mingw64

mingw64 的按照包,我已经放在百度网盘上了,搭建可自行下载:

链接: https://pan.baidu.com/s/1NoPGAYFuP5ysXTf8wtvbEA?pwd=wd6w 提取码: wd6w

(2)配置环境变量

将下载好的mingw64.zip解压,找到解压后bin文件所在路径

在这里插入图片描述

然后将bin所在路径,如我这里的D:\install\mingw64\bin 添加到系统环境变量中。

在这里插入图片描述

(3)验证是否安装成功

命令提示符中cmd窗口输入gcc -v或gcc --version,若显示版本号则说明安装成功

在这里插入图片描述

1.2 配置C/C++环境

C++环境是通过c_pp_propertoes.json,launch.json和tasks.json三个文件配置的。

在这里插入图片描述

方法1 利用工具自动配置

本文介绍一种非常简单的环境配置方法,借助网上提供的vscode c++配置器来实现。

  • 在https://v4.vscch.tk/ 下载安装

    在这里插入图片描述

  • 解压安装包,并点击vscch.exe 进行一步步按照;安装非常简单,按照默认安装方式即可。

    在这里插入图片描述

    该工具可以自动识别MinGW编译器的安装位置,如果没有添加到环境变量中,它会自动帮忙配置到环境变量。

    在这里插入图片描述

  • 如果未下载MinGW,它会提示你下载,然后帮忙自动配置环境变量。

  • 完成安装后,会自动在你选择的工作路径下,生成配置好的c_pp_propertoes.json,launch.json和tasks.json, 以及helloworld.cpp测试代码。可以运行,测试c++环境是否配置成功:

    在这里插入图片描述

    注意: 根据自动生成的json配置,只能在安装时指定的工作目录下,编写c++ code才有效,因此做了如下修改,这样将3个json拷贝到其他目录,也可以运行和调试c++程序。 将single file build改为build

    launch.json的修改如下:

    在这里插入图片描述

    tasks.json的修改如下:

    在这里插入图片描述

    方法2 直接创建3个json文件

    在项目目录上创建.vscode目录,并创建c_cpp_properties.json,launch.json,tasks.json,三个json文件的按照我提供的配置。

    在这里插入图片描述

    (1) c_cpp_properties.json

    Python
    {
        "configurations": [
            {
              "name": "Win32",
              "includePath": ["${workspaceFolder}/**"],
              "defines": ["_DEBUG", "Unicode", "_UNICODE"],
              "WindowsSdkVersion": "10.0.17763.0",
              "compilerPath": "D:\\install\\mingw64\\bin\\g++.exe",   /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
              "cStandard": "c11",
              "cppStandard": "c++17",
              "intelliSenseMode": "${default}"
            }
          ],
          "version": 4
      }
    

    (2) launch.json

    Python
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe build and debug active file",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",  
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": true,
                "MIMode": "gdb",
                "miDebuggerPath": "D:\\install\\mingw64\\bin\\g++.exe", /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
                "setupCommands": [{
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }],
            }
        ]
    }
    

    (3) tasks.json

    Python
    {
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: g++.exe 生成活动文件",
                "command": "D:\\install\\mingw64\\bin\\g++.exe", /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"
                ],
                "options": {
                    "cwd": "${fileDirname}"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "调试器生成的任务。"
            }
        ],
        "version": "2.0.0"
    }
    

    注意: 将这3个json文件中的D:\\install\\mingw64 路径设置为你本机自己的路径

    1.3 C/C++环境测试

    编写一个测试的helloworld.cpp,代码如下:

    Python
    // 按下 F6 编译运行。
    // 按下 F5 编译调试。
    // 按下 Ctrl + Shift + B 编译。
    #include 
    int main() {
        // 在标准输出中打印 "Hello, world!"
        std::cout 
        "files.associations": {
            "*.cpp": "cpp",
            "*.cu": "cuda-cpp",
            "deque": "cpp",
            "string": "cpp",
            "vector": "cpp",
            "*.tcc": "cpp",
            "__hash_table": "cpp",
            "__split_buffer": "cpp",
            "__tree": "cpp",
            "array": "cpp",
            "bitset": "cpp",
            "initializer_list": "cpp",
            "iterator": "cpp",
            "map": "cpp",
            "queue": "cpp",
            "random": "cpp",
            "set": "cpp",
            "stack": "cpp",
            "string_view": "cpp",
            "unordered_map": "cpp",
            "utility": "cpp",
            "__atomic": "cpp",
            "__functional_base": "cpp",
            "__functional_base_03": "cpp",
            "__tuple": "cpp",
            "algorithm": "cpp",
            "chrono": "cpp",
            "type_traits": "cpp",
            "filesystem": "cpp",
            "functional": "cpp",
            "limits": "cpp",
            "memory": "cpp",
            "ratio": "cpp",
            "tuple": "cpp",
            "istream": "cpp",
            "ostream": "cpp",
            "future": "cpp",
            "cctype": "cpp",
            "clocale": "cpp",
            "cmath": "cpp",
            "cstdarg": "cpp",
            "cstddef": "cpp",
            "cstdio": "cpp",
            "cstdlib": "cpp",
            "cstring": "cpp",
            "ctime": "cpp",
            "cwchar": "cpp",
            "cwctype": "cpp",
            "atomic": "cpp",
            "hash_map": "cpp",
            "hash_set": "cpp",
            "bit": "cpp",
            "codecvt": "cpp",
            "complex": "cpp",
            "condition_variable": "cpp",
            "cstdint": "cpp",
            "list": "cpp",
            "unordered_set": "cpp",
            "exception": "cpp",
            "memory_resource": "cpp",
            "numeric": "cpp",
            "optional": "cpp",
            "system_error": "cpp",
            "fstream": "cpp",
            "iomanip": "cpp",
            "iosfwd": "cpp",
            "iostream": "cpp",
            "mutex": "cpp",
            "new": "cpp",
            "sstream": "cpp",
            "stdexcept": "cpp",
            "streambuf": "cpp",
            "thread": "cpp",
            "cfenv": "cpp",
            "cinttypes": "cpp",
            "typeindex": "cpp",
            "typeinfo": "cpp",
            "ios": "cpp",
            "__nullptr": "cpp",
            "__bit_reference": "cpp",
            "__node_handle": "cpp",
            "__locale": "cpp",
            "variant": "cpp"
        }
    }
    
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**",
                    "/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/trt8cuda112cudnn8/include/**",
                    "/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/cpp-packages/opencv4.2/include/**"
                ],
                "compilerPath": "/usr/bin/gcc",
                "cStandard": "gnu11",
                "cppStandard": "gnu++11",
                "intelliSenseMode": "linux-gcc-x64"
            }
        ],
        "version": 4
    }
    
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "make pro -j6"
            }
        ]
    }
    
        "version": "0.2.0",
        "configurations": [
            {
                "name": "program-debug",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/workspace/pro",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}/workspace",
                "externalConsole": false,
                "MIMode": "gdb",
                "miDebuggerPath": "/usr/bin/gdb",
                "environment": [
                    {
                        "name": "LD_LIBRARY_PATH", 
                        "value": "/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/trt8cuda112cudnn8/lib64:/home/yuanwushui/anaconda3/lib:/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/trt8cuda112cudnn8/py39:/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/cpp-packages/opencv4.2/lib:/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/lib:$LD_LIBRARY_PATH"
                    }
                ],
                "setupCommands": [
                    {
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "build"
            }
        ]
    }
    
    	       "name": "LD_LIBRARY_PATH", 
    	       "value": "/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/trt8cuda112cudnn8/lib64:/home/yuanwushui/anaconda3/lib:/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/trt8cuda112cudnn8/py39:/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/cpp-packages/opencv4.2/lib:/home/yuanwushui/anaconda3/lib/python3.9/site-packages/trtpy/lib:$LD_LIBRARY_PATH"
    	   }
    	],
    
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
    
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon