zoukankan      html  css  js  c++  java
  • Dev Envirenment

    1. 安装编译器

    • 安装 MinGW-W64
    • 添加系统环境变量

    注意:
    1)安装 MinGW 的时候要选择正确的 CPU 处理器类型
    2)添加系统变量后需要重启电脑系统

    2. 安装本文编辑器

    • 安装 VS Code
    • 安装 C/C++ 扩展

    注意:
    1)这里的 C/C++ 扩展并不包括“编译器”和“调试器”
    2)安装完扩展后需要重启软件

    3. 创建工作区

    • 准备或者新创一个文件夹作为工作区
    • 通过 VS Code 打开该文件夹

    4. 配置工作区

    在工作区中创建一个名为 .vscode 的目录,在该目录下创建以下三个文件:

    • c_cpp_properties.json
    • tasks.json
    • launch.json

    注意:
    1)可以搜索关键词“path”,并修改路径至 MinGW 的安装路径

    c_cpp_properties.json 示例内容
    
    {
    	"configurations": [{
    		"name": "MinGW",
    		"intelliSenseMode": "gcc-x64",
    		"compilerPath": "D:/MinGW/mingw64/bin/x86_64-w64-mingw32-gcc.exe",
    		"cStandard": "c11",
    		"cppStandard": "c++17",
    		"includePath": [
    			"${workspaceFolder}/**",
    			"D:/MinGW/mingw64/x86_64-w64-mingw32/include",
    			"D:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
    			"D:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1"
    		],
    		"defines": [
    			"_DEBUG",
    			"UNICODE",
    			"_UNICODE",
    			"__GNUC__=7",
    			"__cdecl=__attribute__((__cdecl__))"
    		],
    		"browse": {
    			"path": [
    				"${workspaceFolder}/**",
    				"D:/MinGW/mingw64/x86_64-w64-mingw32/include",
    				"D:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
    				"D:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1"
    			],
    			"limitSymbolsToIncludedHeaders": true,
    			"databaseFilename": ""
    		}
    	}],
    	"version": 4
    }
    
    tasks.json 示例内容
    
    {
        // 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。
        "version": "2.0.0",
        "tasks": [{
            "label": "Compile",
            "type": "shell", // { shell | process }
            // 适用于 Windows 的配置:
            "windows": {
                "command": "g++",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileBasenameNoExtension}.exe"
                    // 设置编译后的可执行文件的字符集为 GB2312:
                    // "-fexec-charset", "GB2312"
                    // 直接设置命令行字符集为 utf-8:
                    // chcp 65001
                ]
            },
            // 定义此任务属于的执行组:
            "group": {
                "kind": "build", // { build | test }
                "isDefault": true // { true | false }
            },
            // 定义如何在用户界面中处理任务输出:
            "presentation": {
                // 控制是否显示运行此任务的面板。默认值为 "always":
                // - always:    总是在此任务执行时显示终端。
                // - never:     不要在此任务执行时显示终端。
                // - silent:    仅在任务没有关联问题匹配程序且在执行时发生错误时显示终端
                "reveal": "silent",
                // 控制面板是否获取焦点。默认值为 "false":
                "focus": false,
                // 控制是否将执行的命令显示到面板中。默认值为“true”:
                "echo": false,
                // 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:
                // - shared:     终端被共享,其他任务运行的输出被添加到同一个终端。
                // - dedicated:  执行同一个任务,则使用同一个终端,执行不同任务,则使用不同终端。
                // - new:        任务的每次执行都使用一个新的终端。
                "panel": "dedicated"
            },
            // 使用问题匹配器处理任务输出:
            "problemMatcher": {
                // 代码内问题的所有者为 cpp 语言服务。
                "owner": "cpp",
                // 定义应如何解释问题面板中报告的文件名
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                // 在输出中匹配问题的实际模式。
                "pattern": {
                    // The regular expression.
                    "regexp": "^(.*):(\d+):(\d+):\s+(warning|error):\s+(.*)$",
                    // 第一个匹配组匹配文件的相对文件名:
                    "file": 1,
                    // 第二个匹配组匹配问题出现的行:
                    "line": 2,
                    // 第三个匹配组匹配问题出现的列:
                    "column": 3,
                    // 第四个匹配组匹配问题的严重性,如果忽略,所有问题都被捕获为错误:
                    "severity": 4,
                    // 第五个匹配组匹配消息:
                    "message": 5
                }
            }
        }]
    }
    
    launch.json 示例内容
    
    {
        "version": "0.2.0",
        "configurations": [{
            // 配置 VS Code 调试行为:
            "name": "GDB Debug", // 设置在启动配置下拉菜单中显示调试配置的名称。
            "preLaunchTask": "Compile", // 调试会话开始前要运行的任务。
            "type": "cppdbg", // 设置要使用的基础调试器。使用 GDB 或 LLDB 时必须是 cppdbg 。
            "request": "launch", // 设置启动程序还是附加到已经运行的实例。启动或附加 ( launch | attach ).
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 调试器将启动或附加的可执行文件的完整路径。
            "externalConsole": true, // 设置是否显示外部控制台。
            "logging": { // 用于确定应该将哪些类型的消息记录到调试控制台。
                "exceptions": true, // 是否应将异常消息记录到调试控制台。默认为真。
                "moduleLoad": false, // 是否应将模块加载事件记录到调试控制台。默认为真。
                "programOutput": true, // 是否应将程序输出记录到调试控制台的可选标志。默认为真。
                "engineLogging": false, // 是否应将诊断引擎日志记录到调试控制台。默认为假。
                "trace": false, // 是否将诊断适配器命令跟踪记录到调试控制台。默认为假。
                "traceResponse": false // 是否将诊断适配器命令和响应跟踪记录到调试控制台。默认为假。
            },
            // 配置目标应用程序:
            "args": [], // 设置调试时传递给程序的命令行参数。
            "cwd": "${workspaceFolder}", // 设置调试器启动的应用程序的工作目录。
            "environment": [], // 设置调试时添加到程序环境中的环境变量,例如: [ { "name": "squid", "value": "clam" } ]。
            // 自定义 GDB 或者 LLDB:
            "windows": {
                "MIMode": "gdb", // 指定 VS Code 连接的调试器,必须为 gdb 或者 lldb。
                "miDebuggerPath": "D:/MinGW/mingw64/bin/gdb.exe" // 调试器的路径,修改为你的安装路径
            },
            "miDebuggerArgs": "", // 传递给调试器的附加参数
            "stopAtEntry": false, // 设置调试器是否停止在目标的入口(附加时忽略)。默认值为 false。
            "setupCommands": [{ // 执行下面的命令数组以设置 GDB 或 LLDB
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing", // 鼠标悬停查看变量的值,需要启用 pretty-printing 。
                "ignoreFailures": true // 忽略失败的命令,默认为 false 。
            }]
        }]
    }
    

    快捷键

    • Ctrl + Shift + B 编译
    • F5 调试
  • 相关阅读:
    js 函数定义的方式
    JS闭包的理解及常见应用场景
    requireJS的基本使用
    Zepto.js简介
    石川es6课程---1-2、ES6简介
    黑马lavarel教程---8、session
    Git使用操作指南和GitHub
    构建自己的Java并发模型框架
    对象的创建和存在时间(持续更新)
    iOS 通过HEX(十六进制)得到一个UIColor的对象
  • 原文地址:https://www.cnblogs.com/zdfffg/p/10417691.html
Copyright © 2011-2022 走看看