VSCode - C/C++ 环境

 

gcc: C语言编译器

g++: C++编译器

 

gdb: 执行器

下载:

首先的核心任务 就算下载可以供 C/C++ 运行开发的环境

比较常见的就算 MinGW

1. 官方网站:

https://osdn.net/projects/mingw/releases/

 

2. 下载 MiinGW 的安装器

3. 利用下载器, 下载 一些 MinGW 的包

我也不太清楚要下载什么包, 所以就勾选了基础的几项

 

 

 

配置

VsCode 可以进行 C/C++ 的编译

首先 在 VsCode 里下载 C/C++ 插件

 

然后 编写一个最简单的程序

#include <stdio.h>
int main() {
    int i = 0;
    printf("Hello World");
}

之后, 按 F5 运行,

提示: 这里的话 需要你的 .cpp 文件在目录下, 用程序空间的方式载入进 vscode

 

如果没有 launch,json 的话, 首先会让你选择一个 运行配置文件

根据提示创建一个 launch.json 配置文件

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",  //最终会运行这个文件, 也就是编译生成之后的文件, 默认是 a.exe
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "environment": [],
            "externalConsole": false,  //是否运行在弹出的控制台上, 如果写false的话, 似乎就什么都没有了 // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "MIMode": "gdb", 
            "miDebuggerPath": "xxxx/mingw/bin/gdb.exe",   //这里需要填写gdb的地址 //miDebugger的路径,注意这里要与MinGw的路径对应
            "preLaunchTask": "build" //跟此运行相关的 任务的名字  // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
        }
    ]
}

 

之后我们需要创建一个 Task.json

这个 task.json 的作用就是, 在通过 launch,json 里的配置运行之前, 先根据我们自定义的命令去运行一个任务

在这里通常这个任务是编译, 也就是把我们的 .cpp 变成 .exe, 这样 launch.json 才可以用 .exe 去执行

当然, 如果我们自己手动来编译的话, 也就不需要 task,json, 但是这样比较麻烦 isn't it?

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build", // 任务的名字, 跟上面 launch.json 的 perLaunchTask 值相对应
            "type": "shell", // 使用命令行的类型
            "command": "g++", // 使用的编译命令
            "args": [ // 参数
                "-g",
                "${file}",
                "-o",
                "${fileBasenameNoExtension}.exe",
            ],
        }
    ]
}

 

这里解释下 command 和 args 的关系

假设 command 是 g++

参数是 ${file}, -o, $(fileBasenameNoExtansion).exe 的话

那么相当于这个任务是在 powershell 下运行 g++ 当前文件 -o 当前文件(去掉后缀名).exe

这样的话效果跟手动编译是一模一样了

 Task 完成了之后, 就开始 launch.json 的运行了

会根据 launch.json 里的 miDebuggerPath 配置的 编译器了路径去运行上刚生成的 exe 文件

 

另外, 网上还有另外一份配置文件

c_cpp_properties.json

但是目前不知道是什么用的, 应该是配置 cpp 文件编译时的全局配置吧, 也好像是提供智能感知的配置

这里有2份配置参考, 目前好像是不用这两个也可以运行

如果要添加这个文件的话 可以输入 

ctrl+shift+p 

再输入

C/CPP: Edit Configurations

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








{
    "configurations": [
        {
            "name": "Win32",
            "browse": {
                "path": [
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true
            },
            "includePath": [
                "E:\\Applications\\Environment\\MinGW\\include\\*"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

 

 

 

然后点击 F5 应该就成功运行了

如果不成功... 留言吧

 

posted @ 2018-06-14 14:24  `Laimic  阅读(2110)  评论(0编辑  收藏  举报