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.
Selecciona C++ (GDB/LLLDB) y nos saldrá otro desplegable para elegir la configuración.
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.
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.
Campo | Descripción |
---|---|
label | El nombre de la tarea (puedes usar este nombre para ejecutarla) |
type | El tipo de tarea (puede ser shell , process , etc.) |
command | El comando que se ejecutará (por ejemplo, el compilador g++ ) |
args | Los argumentos que se pasan al comando (por ejemplo, los archivos de entrada y salida) |
group | Indica 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...
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 .
Campo | Descripción |
---|---|
program | El ejecutable que se va a ejecutar (por ejemplo, el archivo main compilado) |
args | Argumentos que se pasarán al programa cuando se ejecute (en este caso, ninguno) |
stopAtEntry | Si se debe detener la ejecución al inicio del programa |
preLaunchTask | Aquí 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 ) |