Integrando VSCode, Mingw-w64 y CMake (Parte II)

Lecturas de la serie
Sobre este artículo
     Tiempo estimado de configuración: 5 minutos
     Nivel: Básico
     Última actualización: 1 de agosto, 2026

1. Construyendo un proyecto "Hello, world!" con CMake

Este post es una continuación del primer artículo de la serie, en el que analizamos la integración del editor Visual Studio Code, el compilador GCC y el generador de build systems CMake para la gestión de proyectos de C++ en MS Windows.

CMake emplea ficheros de configuración CMakeLists.txt para producir archivos de construcción específicos que puedan ser utilizados por herramientas de construcción nativas de nuestra plataforma,  como GNU Make o Ninja.

Iniciemos un nuevo proyecto de C++ en VS Code acudiendo al menú "FileOpen folder..." (en castellano: "ArchivoAbrir carpeta..."). Aparecerá una ventana desde la que podremos seleccionar la carpeta donde almacenar los distintos ficheros del proyecto. De no existir previamente, podremos crear dicha carpeta en la ubicación que consideremos más conveniente pulsando el botón derecho del ratón y seleccionando "Nuevo→Carpeta" desde el Explorador de archivos de MS Windows. A lo largo de esta sección, asumiremos que dicha carpeta toma como título "prueba":


Una vez seleccionada la nueva carpeta, pulsaremos Ctrl+Shift+P y ejecutaremos ">CMake: Quick Start" (en castellano: "CMake: Inicio rápido"). Este asistente generará automáticamente una estructura mínima de proyecto formada por un fichero fuente (main.cpp) y un fichero de configuración (CMakeLists.txt). Para ello, proporcionaremos un título para el proyecto (por consistencia, "prueba"):


Se nos solicitará entonces que seleccionemos el lenguaje a emplear entre C++ y C. Optaremos por el primero:


Se nos pedirá que especifiquemos si el target del proyecto es una biblioteca (library) o un ejecutable (executable). Escogeremos esta última opción:

Probablemente el concepto más importante de CMake es el de los targets (objetivos) [1]. Los targets representan los ejecutables, las librerías y las utilidades construidas por CMake. Cada comando add_library, add_executable add_custom_target crea un objetivo.
Finalmente, podremos incluir de forma opcional soporte CPack y CTest para el proyecto, según nuestra conveniencia, antes de pulsar el botón "Ok":


Observaremos la aparición del logotipo triangular de CMake en el lateral izquierdo del editor VSCode:


Si pinchamos sobre dicho logotipo tendremos acceso a dos ficheros recién generados:
  • main.cpp, con un código básico de prueba "Hello, world!" para C++, que mantendremos inalterado en esta primera prueba de compilación.
  • CMakeLists.txt, cuyas directrices indican el target del proyecto (en este caso, el ejecutable). Este fichero se ubica por defecto en la misma carpeta en la que se encuentra el código fuente main.cpp. Su contenido es el siguiente:
cmake_minimum_required(VERSION 3.10.0) project(prueba VERSION 0.1.0 LANGUAGES C CXX) add_executable(prueba main.cpp)

Distinguimos los comandos:
  • cmake_minimum_required: establece la versión mínima de CMake necesaria para construir el proyecto.
  • project establece el nombre y número de versión del proyecto, así como los lenguajes soportados.
  • add_executable: añade un ejecutable al proyecto usando una lista de ficheros fuente. En este caso, el ejecutable adoptará el mismo nombre que el del proyecto (prueba), al existir un único target. La extensión del ejecutable (en nuestro caso, .exe) se añadirá directamente según el convenio adoptado por nuestra plataforma.
Seleccionemos un kit de compilación de entre una lista. Escogeremos la versión de GCC más actualizada disponible en nuestro sistema (en la imagen inferior, 16.1.0):


Finalmente, procederemos a construir el proyecto (build) pinchando sobre el icono que figura junto a su título:


Durante esta fase, CMake generará los archivos de construcción requeridos por Ninja. Posteriormente, Ninja invocará al compilador G++ para traducir el código fuente y generar el ejecutable final.

Pulsaremos el icono "Run" disponible en la barra de control inferior a fin de ejecutar en una terminal el archivo .exe recién generado. La terminal mostrará entonces el texto "Hello, from prueba!":

El lector puede comprobar la aparición de una carpeta dentro del directorio (folder) del proyecto, denominada build. Ésta contiene los archivos generados automáticamente durante la construcción del proyecto (ejecutables, objetos intermedios y ficheros de configuración generados por CMake). Mantener estos archivos separados del código fuente constituye una práctica habitual conocida como out-of-source build [2].
En el próximo artículo analizaremos la instalación de bibliotecas no-estándar en nuestro sistema, así como opciones de construcción más avanzadas en CMake.

Referencias bibliográficas

  1. CMake - Targets – https://cmake.org/cmake/help/book/mastering-cmake/chapter/Key%20Concepts.html
  2. CMake - Directory structure – https://cmake.org/cmake/help/book/mastering-cmake/chapter/Getting%20Started.html

Comentarios