How to Fix the ‘preLaunchTask’ Error in VSCode: Resolving Issues with C/C++

As a developer, I’ve encountered my fair share of errors in Visual Studio Code (VSCode). One particularly frustrating error is the “Il preLaunchTask ‘C/C++: g++.exe build active file’ è terminato con codice di uscita 1” error. I’ll guide you through the steps to resolve this error and get back to coding.

Understanding the Error

The error message indicates that the preLaunchTask in your launch.json file has failed with an exit code of 1. This usually means there’s an issue with the build process, often related to incorrect paths, missing dependencies, or misconfigured settings in your tasks.json file.

Review Your launch.json File

Your launch.json file is responsible for configuring the debugger. Here’s a sample configuration for C/C++ debugging:

JSON

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

Key Points to Check:

  • Ensure the miDebuggerPath points to the correct location of gdb.exe.
  • Verify that the preLaunchTask name matches the label in your tasks.json file.

Review Your tasks.json File

The tasks.json file defines the build task that compiles your C/C++ code. Here’s an example configuration:

JSON

{
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: g++.exe build active file",
            "command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"
}

Key Points to Check:

  • Ensure the command path points to the correct location of g++.exe.
  • Verify that the args are correctly specified for your build process.
  • Confirm that the label matches the preLaunchTask name in launch.json.

Common Issues and Fixes

  • Incorrect Paths: Double-check the paths to g++.exe and gdb.exe in both launch.json and tasks.json. Ensure they are correct and accessible.
  • Missing Dependencies: Make sure MinGW or your C/C++ compiler is properly installed and added to your system’s PATH.
  • File Permissions: Ensure VSCode has the necessary permissions to access and execute the files in the specified directories.
  • Syntax Errors: Validate your JSON files for any syntax errors using a JSON validator.

Test Your Configuration

After making the necessary adjustments:

  • Save both launch.json and tasks.json.
  • Restart VSCode to ensure the changes take effect.
  • Try building and debugging your C/C++ file again.

Conclusion

By carefully reviewing and correcting your launch.json and tasks.json configurations, you should be able to resolve the preLaunchTask error and successfully compile and debug your C/C++ code in VSCode. If the issue persists, consider reinstalling your compiler or seeking help from the VSCode community.

Related blog posts