web-dev-qa-db-ja.com

Visual Studio Codeを介してC ++ファイルをコンパイルする方法

クイックランダウン:私はUbuntuはまったく新しいですが、C++は初めてではありません:I 'Windowsマシンでコーディングしたことがありますが、Ubuntuに切り替えました

UbuntuとC++拡張機能にVSコードをインストールしましたが、helloworld.cppを実行し、エディターをデバッグしようとすると、ギャングサインがスローされます。

Error Screen

この問題で誰か助けてくれますか?

4

Ubuntuに切り替えたときにもこの問題がありました(私も新しいので、Windowsよりも複雑であることを理解していることを明確にしようとします)。私はあなたの経験を知りませんが、まず第一に、外部のコンソールに値を出力するWindowsコンパイラ(devc、borlandなど)とは異なります(デバッグしている場合を除く)。したがって、これはプログラムを機能させるための手順です。

  1. G ++ Sudo apt-get install g++をインストールし、次のようにlinuxセクションの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+Shift+B

  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://imgur.com/ioMdDzZ

プロのヒント:より暗いテーマをお勧めします!

3
Carlos Pérez

VS Codeからアプリケーションをビルドする場合は、tasks.jsonファイルを生成する必要があります。

tasks.jsonは、ソースコードフォーマッタ、バンドラー、SASSコンパイラなど、必要に応じて実行するために使用されます。tasks.jsonの構成を使用するには、コマンドリストからRun Taskを選択します。

コマンドパレットを開く(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
                    }
                }
            }
        ]
    }
    
0
AKASH GUDADHE