como-crear-un-proyecto-de-cpp-con-visual-studio-code

Crear un proyecto de C++ con Visual Studio Code

Vamos a ver cómo crear un crear un nuevo proyecto de C++ en Visual Studio Code, como ejecutarlo y debuggearlo.

Una vez que tengamos VS Code instalado, el compilador y las extensiones instaladas, creamos una nueva carpeta para el proyecto (para organizar mejor tu proyecto) y abrimos esta carpeta en VScode con Archivo > Abrir carpeta.

Ahora creamos un fichero nuevo de C++ haciendo click en Archivo > Nuevo archivo (o pulsando Ctrl+N), llamado main.cpp (por ejemplo).

En este fichero, pega esté código.

#include <iostream>

int main() {
    std::cout << "¡Hola, mundo en C++ desde LuisLlamas.es!" << std::endl;
    return 0;
}

Veremos en detalle cada línea más adelante. De momento no te preocupes, sólo estamos configurando el entorno

Ya tienes un programa muy sencillo. Ahora vamos a ejecutarlo 👇.

Ejecutar el código

Desde VSCode

Para lanzar nuestro código desde Visual Studio Code, pulsamos F5. La primera vez nos saldrá un desplegable para elegir el debuggeador.

vscode-gdb

Selecciona C++ (GDB/LLLDB) y nos saldrá otro desplegable para elegir la configuración.

vscode-gcc

Aquí elegimos C/C++ g++ build and debug active file y (por fin) el programa se ejecutará.

En la pestaña de Terminal verás la salida del programa (que incluye un comando con varias líneas). Y al final, el mensaje en la salida.

¡Hola, mundo en C++ desde LuisLlamas.es!

Enhorabuena, ya tienes VSCode configurado para funcionar con C++ 🎉.

Las siguientes veces que quieras ejecutar el programa, simplemente pulsa F5, y se lanzará sin tener que elegir nada en desplegables

Desde el terminal

Alternativamente, si quieres hacer la compilación a mano, podrías hacerlo así. En primer lugar, compilamos el código usando GCC con el siguiente comando:

g++ hola_mundo.cpp -o hola_mundo

Ahora nos creará un fichero ejecutable, que podemos ejecutar (claro, porque es ejecutable 😆)

hola_mundo.exe
./hola_mundo

Configuración de tareas de compilación y ejecución

La configuración de VSCode para compilación y debug se basa en dos ficheros tasks.json y launch.json, que se guardan en la carpeta del proyecto (en la subcarpeta .vscode).

  • tasks.json: Configura tareas automáticas (por ejemplo, compilar código).
  • launch.json: Configura el depurador y la ejecución de programas dentro de VSCode.

vscode-task-launch-json

El fichero Tasks.json

El archivo tasks.json se utiliza para definir tareas automatizadas que puedes ejecutar dentro de VSCode.

Las tareas pueden ser cualquier proceso que quieras automatizar en tu flujo de trabajo, como compilar código, ejecutar pruebas, o cualquier otro comando de la terminal.

Al hacer el proceso anterior, te habrá creado uno que tendrá, más o menos esta pinta

{
   "version": "2.0.0",
   "tasks": [
	   {
		   "type": "cppbuild",
		   "label": "Compilar C++",
		   "command": "g++",
		   "args": [
			   "-fdiagnostics-color=always",
			   "-g",
			   "${file}",
			   "-o",
			   "${fileDirname}/${fileBasenameNoExtension}.exe"
		   ],
		   "group": {
			   "kind": "build",
			   "isDefault": true
		   },
		   "problemMatcher": ["$gcc"],
		   "detail": "Compila el archivo actual de C++"
	   }
   ]
}

En esta configuración ahora mismo hace:

  • Compila el archivo actual
  • Genera un ejecutable en la misma carpeta.

Algunos de los parámetros que podemos ajustar son.

CampoDescripción
labelEl nombre de la tarea (puedes usar este nombre para ejecutarla)
typeEl tipo de tarea (puede ser shell, process, etc.)
commandEl comando que se ejecutará (por ejemplo, el compilador g++)
argsLos argumentos que se pasan al comando (por ejemplo, los archivos de entrada y salida)
groupIndica que la tarea es parte del grupo de “build” (compilación), y puedes marcarla como la tarea predeterminada.

Fichero launch.json

El archivo launch.json se utiliza para configurar el depurador en VSCode. Al principio este paso es opcional (lo usaremos cuando queramos configurar parámetros avanzados en el debugger).

Para ello, hacemos Ejecutar > Agregar configuración…. Nos creara un fichero launch.json vacío. Podemos agregar configuraciones pulsando en el botón Add Configuration...

vscode-launch-json

El fichero quedará algo como el siguiente

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program":  "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}

Para que os funcione, tendréis que ajustar los parámetros

En particular, en este ejemplo, tendréis que cambiar esta línea

"program": "enter program name, for example ${workspaceFolder}/a.exe",

Por la ruta donde hayáis guardado el fichero en el fichero Tasks.json

"program":  "${fileDirname}\\${fileBasenameNoExtension}.exe",

Algunos de los parámetros del fichero Launch.json son .

CampoDescripción
programEl ejecutable que se va a ejecutar (por ejemplo, el archivo main compilado)
argsArgumentos que se pasarán al programa cuando se ejecute (en este caso, ninguno)
stopAtEntrySi se debe detener la ejecución al inicio del programa
preLaunchTaskAquí se puede especificar una tarea que se ejecutará antes de iniciar la depuración (por ejemplo, la tarea de compilación definida en tasks.json)