如何通过 Visual Studio Code 编译 C++ 文件

如何通过 Visual Studio Code 编译 C++ 文件

快速概述:我对 Ubuntu 完全陌生,但对 C++ 并不陌生:我以前在 Windows 机器上写过代码,但我换到了 Ubuntu

现在我已经在 Ubuntu 上安装了 VS 代码以及 C++ 扩展,但是当我尝试运行helloworld.cpp并调试时,我的编辑器开始抛出帮派标志:

错误屏幕

有人能帮我解决这个问题吗?

答案1

当我切换到 Ubuntu 时,我也遇到了这个问题(我也是新手,所以我会尽量说清楚,我知道它比 Windows 更复杂)。我不知道您的经验,但首先,它不像任何 Windows 编译器(如 devc、borland 等),它会在外部控制台上输出您的值(除非您正在调试)。因此,以下是使程序运行的步骤:

  1. 您需要安装 g++并向编译器显示linux 部分中sudo apt-get install g++名为的文件中的包含路由,如下所示:c_cpp_properties.json

    "name": "Linux",
        "includePath": [
            "/usr/include/c++/7",
            "/usr/include/x86_64-linux-gnu/c++/7",
            "/usr/include/c++/7/backward",
            "/usr/lib/gcc/x86_64-linux-gnu/7/include",
            "/usr/local/include",
            "/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed",
            "/usr/include/x86_64-linux-gnu",
            "/usr/include",
            "/usr/bin/g++",
            "${workspaceRoot}"
    
  2. 首先选择您要工作的文件夹(它将成为您的工作区)。

  3. 您需要在运行程序之前先构建程序,因此您需要创建一个“任务”来执行此操作,因此您转到命令面板(Ctrl+ P)并输入:

    Tasks: Configure Default Build Tasks
    

    这将创建一个task.json,您必须选择一个选项(MsBuild、dotNet、其他等)。因此,您将选择“其他”,然后更改一些值,如下所示:

    {
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks": [
            {
                "label": "echo",
                "type": "shell",
                "command": "g++",
                "args": [
                    "-g","Erlang_B_Correcto.cpp"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                }
            }
        ]
    }
    

    现在按Ctrl++ShiftB

  4. 现在,如果你的程序没有错误,将在集成终端中输出类似这样的内容

    在文件夹 YourFolder 中执行任务:g++ -g YourProgram.cpp

    并将a.out在您的工作区文件夹中创建一个名为的文件,我建议您下载一个名为的扩展CodeRunner:它会在右上角添加一个播放按钮,您只需单击该按钮即可运行程序而无需调试。问题是,它只能输出。我的意思是:如果您希望用户输入值,您就不能(正如我之前所说,我也是新手,所以我不完全确定您不能)。

  5. 最后,如果您想调试,您需要将lauch.json上传的图像配置为如下所示:

    {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/carlosrpz26/Documents/C++ Programas/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
      ]
    }
    

https://i.stack.imgur.com/Ofrpi.jpg

专家提示: 我推荐一个更暗的主题!

答案2

如果您想从 VS Code 构建应用程序,您将需要生成一个 task.json 文件:

task.json 用于执行您可能需要的任何其他操作,无论是源代码格式化程序、打包程序还是 SASS 编译器。要使用来自 task.json 的配置,请从命令列表中选择“运行任务”。

打开命令面板(Ctrl+Shift+P)。

  1. 选择任务:配置任务...命令,单击从模板创建tasks.json文件,您将看到任务运行器模板列表。

  2. 选择其他来创建运行外部命令的任务。

  3. 将命令更改为用于构建应用程序的命令行表达式(例如 g++)。

  4. 添加任何所需的参数(例如 -g 用于构建调试)。

  5. Microsoft C/Cpp 扩展是必需的,并且还需要您自己的 c++ 编译器来运行实际代码。我使用了 g++,它在编译后给出了 .out 文件,因此我在以下代码片段中添加了 .out。

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "debug",
                "type": "shell",
                "command": "",
                "args": [
                    "g++",
                    "-g",
                    "${relativeFile}",
                    "-o",
                    "a.out"
                ],
                "problemMatcher": [
                    "$gcc"
                ]
            },
            {
                "label": "Compile and run",
                "type": "shell",
                "command": "",
                "args": [
                    "g++",
                    "-g",
                    "${relativeFile}",
                    "-o",
                    "${fileBasenameNoExtension}.out",
                    "&&",
                    "clear",
                    "&&",
                    "./${fileBasenameNoExtension}.out"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": {
                    "owner": "cpp",
                    "fileLocation": [
                        "relative",
                        "${workspaceRoot}"
                    ],
                    "pattern": {
                        "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                        "file": 1,
                        "line": 2,
                        "column": 3,
                        "severity": 4,
                        "message": 5
                    }
                }
            }
        ]
    }
    

相关内容