VSCode搭建C++开发环境

1 参考资料

1.1 参考网址

​ https://www.jb51.net/article/183519.htm

​ https://www.zhihu.com/question/30315894

​ https://www.jianshu.com/p/febbf1e975b6

2 gcc编译工具

2.1 下载网址

​ 网址:https://sourceforge.net/projects/mingw-w64/files/(选择新版本的x86_64-posix-seh)

​ 各个gcc版本区别传送门:https://www.cnblogs.com/fanbi/p/10309800.html

2.2 mingw添加到系统环境变量

​ 我的电脑→属性→高级系统设置→环境变量→系统变量→PATH编辑→把mingw路径下的include、lib、bin文件夹路径添加进去

VSCode搭建C++开发环境_第1张图片

3 配置文件

3.1 创建工程文件夹和配置文件

在工程文件夹下创建".vscode"文件夹,然后在.vscode文件夹下创建c_cpp_properties.json、launch.json、tasks.json文件

3.2 c_cpp_properties.json

{
    "configurations": [
      {
        "name": "Win32",
        "includePath": [ 
            "C:/mingw64/include/**",
            "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
            "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
            "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
            "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
            "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
            "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"],
        "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
        "compilerPath": "C:\\mingw64\\bin\\gcc.exe",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "clang-x86"
      }
    ],
    "version": 4
  }

3.3 launch.json

//该文件负责配置VS Code。
{
    "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}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 workspaceRoot已被弃用,现改为workspaceFolder
        "environment": [],
        "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
        "MIMode": "gdb",
        "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
        "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
        "setupCommands": [
          {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": false
          }
        ]
      }
    ]
  }

3.4 tasks.json

//该文件文件来告诉VS Code如何构建(编译)程序。
{
    "version": "2.0.0",
    "command": "g++",
    "args": [
      "-g",
      "${fileDirname}\\*.cpp",  //多文件编译使用 "${fileDirname}\\*.cpp",单文件编译时改写为"${file}"
      "-o",
      "${fileBasenameNoExtension}.exe"
    ], // 编译命令参数
    "problemMatcher": {
      "owner": "cpp",
      "fileLocation": [
        "relative",
        "${workspaceFolder}"
      ],
      "pattern": {
        "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
        "file": 1,
        "line": 2,
        "column": 3,
        "severity": 4,
        "message": 5
      }
    }
  }

  /*
  单文件编译时,在tasks.json中,将"${fileDirname}\\*.cpp" 改写为"${file}"。同一个文件夹下可以有多个cpp文件包含main()函数。

多文件编译使用"${fileDirname}\\*.cpp",同一个文件夹下只能有一个main()函数。使用"${fileDirname}\\*.cpp"选项后,vscode可以编译c++的小工程。需要做大项目或者进行专业的工作,建议使用make和Makefile或者visual studio。
*/

4 插件功能介绍(后续完善)

5 多文件编译案例

5.1 tasks.json

//该文件文件来告诉VS Code如何构建(编译)程序。
{
    "version": "2.0.0",
    "command": "g++",
    "args": [   
      "-g",
      "${fileDirname}\\cpp\\*.cpp",  // 这里是另外一个文件的目录
      "${fileDirname}\\*.cpp",  //多文件编译使用 "${fileDirname}\\*.cpp",单文件编译时改写为"${file}"
      "-o",
      "${fileBasenameNoExtension}.exe"
    ], // 编译命令参数
    "problemMatcher": {
      "owner": "cpp",
      "fileLocation": [
        "relative",
        "${workspaceFolder}"
      ],
      "pattern": {
        "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
        "file": 1,
        "line": 2,
        "column": 3,
        "severity": 4,
        "message": 5
      }
    }
  }

  /*
  单文件编译时,在tasks.json中,将"${fileDirname}\\*.cpp" 改写为"${file}"。同一个文件夹下可以有多个cpp文件包含main()函数。

多文件编译使用"${fileDirname}\\*.cpp",同一个文件夹下只能有一个main()函数。使用"${fileDirname}\\*.cpp"选项后,vscode可以编译c++的小工程。需要做大项目或者进行专业的工作,建议使用make和Makefile或者visual studio。
*/

5.2 主函数

// 路径:./
#include
#include
#include"C:\coding tools\VSCode code\header\prin.h"

int main()
{
    prin();
    system("pause");
    return 0;
}

5.3 prin.h

// 路径:./header/
#pragma once
#include
#include
using namespace std;
void prin();

5.4 prin.cpp

// 路径:./cpp/
#include"C:\coding tools\VSCode code\header\prin.h"
void prin()
{
    cout << "test ok!!!" << endl; 
}

6 VSCode json属性和变量含义

tasks.json

command:编译器路径
args:传递给编译器的参数

$ {workspaceFolder} - 在VS Code中打开的文件夹的路径
$ {workspaceFolderBasename} -VS代码中打开的文件夹的名称,没有任何斜杠(/)
$ {file} - 当前打开的文件
$ {relativeFile} -当前打开的文件相对于workspaceFolder
$ {fileBasename} - 当前打开文件的基本名称
${fileBasenameNoExtension} - 当前打开文件的基本名称,没有文件扩展名
$ {fileDirname} -当前打开文件的目录名
$ {fileExtname} - 当前打开文件的扩展名
$ {cwd} - 任务运行器在启动时的当前工作目录
$ {lineNumber} - 活动文件中当前选定的行号
$ {selectedText} - 活动文件中当前选定的文本

你可能感兴趣的:(编程工具,c++,vscode,编辑器)