C++环境配置


如果想让我们编写的C++代码在Windows平台上运行需要两个必要条件,头文件库 (包含一些常用的函数) 和编译器 (将代码转变成可以运行的程序) ,同时还需要一个编辑器用来写代码。

有两个方案可以解决这个问题

使用Visual Studio集成开发环境

点击 安装 选择适合自己电脑的版本安装时勾选进行C++桌面开发。( Visual Studio使用教程 )

集成了三者,安装方便,但是软件打开慢,不能单独运行cpp文件,适合大型项目。

MinGW下载

点击 下载 进入下载页面,打开后点击Download Latest Version即开始下载,下载完成后双击打开。
安装及设置环境变量见此 链接 其中64位系统电脑选择x86_64。

包含了头文件库和编译器,安装配置麻烦,但使用时比较灵活,可以配合其他编辑器使用,也可以直接在命令行里使用。

VsCode编辑器下载

有了头文件和编译器还需要一个好看的编辑器用来写代码。
VcCode是使用最广泛的一个编辑器之一。

  • 首先需要下载VsCode进入 官网 选择适合自己电脑的版本下载。

  • 刚安装上界面全是是英文,如果需要换成中文请完成此步骤。
    打开后点击这里搜索Chinese并点击第一个,再点击install,成功后重启。

    现在就可以开始配置环境在漂亮的VsCode中写代码了。

  • 首先打开插件商店( 就是左边的方块图标 )分别搜索安装C/C++、C++ Intellisense、Code Runner。
  • 在你的电脑上新建一个放C++代码的文件夹,然后在vscode中点击文件按钮点击打开文件夹按钮,打开此文件夹。
  • 如图所示,搜索到C++(GDB/LLDB)点击然后点击cpp(没出现不用点)会生成一个launch.json。找不到的可以自行创建一个。

    // 配置 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": "C:/Program Files/mingw-w64/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 。
  • 然后在.vscode文件夹下再创建一个tasks.json,将以下内容粘贴其中。
  • // 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。
        "version": "2.0.0",
        "tasks": [
                "label": "Compile",
                "type": "shell", // { shell | process }定义任务是被作为进程运行还是在 shell 中作为命令运行
                // 适用于 Windows 的配置:
                "windows": {
                "command": "g++",
                "args": [
                    "-g",
                    "\"${file}\"",
                    "-fexec-charset=GB2312",//设置编码格式为gb2312,不然中文会乱码。
                    "-o",
                    "\"${fileDirname}\\${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": true,
                // 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:
                // - 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
    
  • 在vscode文件夹下再创建一个c_cpp_properties.json文件,将以下内容复制粘贴,并将地址改为你的gcc.exe地址。
  • "configurations": [ "name": "Win32", "defines": [ "_DEBUG", "UNICODE" "compilerPath": "C:/Program Files/mingw-w64/mingw64/bin/gcc.exe", "intelliSenseMode": "gcc-x64", "browse": { "path": [ "${workspaceFolder}" "limitSymbolsToIncludedHeaders": true, "databaseFilename": "" "version": 4