Volver a la página principal
jueves 20 febrero 2025
2

Cómo usar add_subdirectory en CMake

El comando add_subdirectory en CMake se utiliza para incluir un subdirectorio en la compilación de un proyecto. Permite organizar proyectos grandes dividiéndolos en módulos o bibliotecas separadas, cada uno con su propio CMakeLists.txt.

Uso de add_subdirectory

La sintaxis básica es:

add_subdirectory(<source_dir> [<binary_dir>] [EXCLUDE_FROM_ALL])

Parámetros:

  • <source_dir>: Ruta del subdirectorio que contiene el CMakeLists.txt.
  • <binary_dir> (opcional): Ruta donde se generarán los archivos de compilación para ese subdirectorio.
  • EXCLUDE_FROM_ALL (opcional): Evita que los objetivos de este subdirectorio se compilen por defecto.

Ejemplo de uso

Estructura del proyecto

mi_proyecto/
│── CMakeLists.txt
│── src/
│   │── CMakeLists.txt
│   │── main.cpp
│── lib/
    │── CMakeLists.txt
    │── mi_lib.cpp
    │── mi_lib.h

CMakeLists.txt en el directorio raíz

cmake_minimum_required(VERSION 3.10)
project(MiProyecto)

add_subdirectory(lib)  # Agrega el subdirectorio 'lib'

add_executable(mi_programa src/main.cpp)
target_link_libraries(mi_programa mi_lib)  # Enlaza la biblioteca del subdirectorio

CMakeLists.txt en lib/

add_library(mi_lib mi_lib.cpp)  # Define una biblioteca

main.cpp

#include <iostream>
#include "mi_lib.h"

int main() {
    imprimirMensaje();
    return 0;
}

mi_lib.h

#ifndef MI_LIB_H
#define MI_LIB_H

void imprimirMensaje();

#endif

mi_lib.cpp

#include <iostream>
#include "mi_lib.h"

void imprimirMensaje() {
    std::cout << "¡Hola desde mi_lib!" << std::endl;
}
Etiquetas:
cmake
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer