CMake para C++: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a CMake: qué es y para qué sirve

\n\n

CMake (Cross-Platform Make) es un potente sistema de automatización de compilación de software multiplataforma y de código abierto. A diferencia de los Makefile tradicionales, CMake no compila el proyecto directamente, sino que genera archivos de compilación para herramientas nativas (Make, Ninja, Visual Studio, Xcode) basándose en archivos de configuración simples CMakeLists.txt.

\n\n

¿Para qué sirve CMake?

\n
    \n
  • Multiplataforma: El mismo código se puede compilar en Windows, Linux y macOS sin modificar la configuración.
  • \n
  • Gestión de dependencias: Soporte integrado para buscar y conectar bibliotecas externas (Boost, OpenCV, Qt, etc.).
  • \n
  • Flexibilidad: Soporte para varios generadores de proyectos (Visual Studio, Xcode, Ninja, Unix Makefiles).
  • \n
  • Modularidad: Posibilidad de crear bibliotecas (estáticas y dinámicas), archivos ejecutables y pruebas.
  • \n
  • Integración con IDE: Los IDE modernos (CLion, VS Code, Qt Creator) tienen soporte integrado para CMake.
  • \n
\n\n

CMake se ha convertido en el estándar de facto para proyectos C++. Lo utilizan gigantes como Google (TensorFlow, Chrome), Microsoft (VS Code), KDE, LLVM/Clang y muchos otros.

\n\n

Instalación de CMake

\n\n

A diferencia de las bibliotecas de Python, CMake no se instala a través de pip. Es una aplicación independiente. Veamos la instalación para los principales sistemas operativos:

\n\n

Windows

\n
    \n
  1. Descargue el instalador desde el sitio web oficial (elija la versión para Windows — .msi o .zip).
  2. \n
  3. Ejecute la instalación. Asegúrese de marcar la opción "Add CMake to the system PATH for all users".
  4. \n
  5. Después de la instalación, verifique: cmake --version en la línea de comandos.
  6. \n
\n\n

Linux (Ubuntu/Debian)

\n
sudo apt update\nsudo apt install cmake\ncmake --version
\n\n

macOS (Homebrew)

\n
brew install cmake\ncmake --version
\n\n

Verificación de la instalación

\n

Después de la instalación, ejecute en la terminal:

\n
cmake --version\n# La salida debería ser similar a:\n# cmake version 3.27.0
\n\n

Inicio rápido: primer proyecto con CMake

\n\n

Creemos un proyecto simple "Hello World" usando CMake.

\n\n

Estructura del proyecto

\n
my_project/\n├── CMakeLists.txt\n└── main.cpp
\n\n

Archivo main.cpp

\n
#include <iostream>\n\nint main() {\n    std::cout << "Hello, CMake!" << std::endl;\n    return 0;\n}
\n\n

Archivo CMakeLists.txt

\n
cmake_minimum_required(VERSION 3.10)\nproject(HelloWorld VERSION 1.0 LANGUAGES CXX)\n\nadd_executable(hello main.cpp)
\n\n

Compilación del proyecto

\n
mkdir build\ncd build\ncmake ..\ncmake --build .\n./hello
\n\n

Explicación:

\n
    \n
  • cmake_minimum_required — establece la versión mínima de CMake.
  • \n
  • project — define el nombre del proyecto y el idioma (CXX para C++).
  • \n
  • add_executable — crea un archivo ejecutable a partir de los archivos fuente.
  • \n
\n\n

Métodos y funciones principales de CMake

\n\n

1. cmake_minimum_required()

\n

Descripción: Establece la versión mínima de CMake necesaria para compilar el proyecto. Si la versión de CMake es inferior a la especificada, se mostrará un error.

\n

Parámetros:

\n
    \n
  • VERSION — versión en formato major.minor[.patch[.tweak]]
  • \n
  • FATAL_ERROR — opcional, provoca un error fatal si la versión no coincide
  • \n
\n

Ejemplo:

\n
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
\n\n

2. project()

\n

Descripción: Define el nombre del proyecto y sus parámetros. Debe

Recommendations