{}const=>[]async()letfn</>var
Desarrollo

🛠️ CMake sin dolor: configura la compilación una vez y olvídate

CMake asusta a muchos, pero no a ti. Aquí tienes una guía sencilla y clara para configurar CMake para C++ sin dolor ni magia. Miniplantilla, consejos, trucos, y todo ello acompañado de Kodik 🚀

К

Kodik

Autor

2 min de lectura

Si has escrito en C++, probablemente te hayas encontrado con CMake. Y, tal vez, tuviste un momento de desesperación cuando todo simplemente no se va a. CMake es una herramienta poderosa, pero su sintaxis y estructura a menudo causan dolor. Veamos cómo configurar CMake una vez y correctamentepara no volver al caos 💡

🔰 ¿Qué es CMake?

CMake es un sistema de generación de compilación. No compila el código directamente, sino crea archivos para ensamblar para tu sistema: Makefile, Ninja, Xcode o Visual Studio.

  • ✅ Funciona en múltiples plataformas

  • ✅ Permite personalizar las dependencias

  • ✅ Simplifica el montaje de grandes proyectos

  • ✅ Compatible con IDE y CI/CD

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

🧱 Estructura básica del proyecto con CMake

project-root/
├── CMakeLists.txt
├── src/
│   └── main.cpp
├── include/
│   └── mylib.hpp
├── CMakeLists.txt (внутри src/)

📌 Raíz CMakeLists.txt:

cmake_minimum_required(VERSION 3.15)
project(MyProject)

set(CMAKE_CXX_STANDARD 20)

add_subdirectory(src)

📌 src/CMakeLists.txt:

add_executable(my_app main.cpp)
target_include_directories(my_app PRIVATE ../include)

⚙️ Consejos para configurar CMake sin problemas

1. Usa target_* en lugar de variables globales

❌ Mal:

include_directories(./include)

✅ Correcto:

target_include_directories(my_app PRIVATE ./include)

2. Añade compile_commands.json

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

Ayuda a autocompletar y resaltar errores en VS Code y clangd.

3. Utiliza siempre la compilación fuera de la fuente

mkdir build && cd build
cmake ..
cmake --build .

4. Conecta correctamente las bibliotecas de terceros

Ejemplo con FetchContent:

include(FetchContent)
FetchContent_Declare(
  json 
  URL https://github.com/nlohmann/json/releases/latest/download/json.hpp
)
FetchContent_MakeAvailable(json)

target_link_libraries(my_app PRIVATE nlohmann_json::nlohmann_json)

🧪 Lista de verificación de un buen proyecto CMake

  • ✅ CMakeLists.txt no tiene más de 30 líneas

  • ✅ Todas las dependencias a través de target_*

  • ✅ Soporte de depuración/liberación

  • ✅ Ensamblaje out-of-source

  • ✅ Funciona en terminal e IDE

📚 ¿Quieres profundizar en el tema?
En el anexo Kodik encontrarás tutoriales detallados sobre CMake y C++, ejercicios paso a paso, análisis de errores y práctica cómoda directamente en tu teléfono o navegador.
Y si quieres estar al tanto de las noticias, nuevas características y materiales útiles, suscríbete a nuestro Canal de Telegram. Es acogedor, profesional y con amor por el código ❤️

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta