es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función de autocompletado de código de CLion no funciona cuando se colocan archivos de encabezado en el directorio “include”.

Tengo un proyecto con una estructura de directorios como esta:

LuftOS/
kernel/
include/
Bitmap.h
src/
Bitmap.cpp
Kernel.cpp
Makefile

En el pasado, tenía “Bitmap.h” dentro de “kernel/src/”, pero decidí colocar todos mis archivos de encabezado en “kernel/include/”. En mi archivo Makefile, agregué “-I./include/” a las banderas del compilador, por lo que todo funciona bien y se compila correctamente. (Utilizo la línea de comandos para compilar ya que este es un proyecto de desarrollo de sistema operativo, solo uso CLion para editar)

Sin embargo, ahora CLion parece no detectar “Bitmap.h” y el autocompletado de código no funciona. Al buscar en Google, me dice que CLion necesita que use CMake para que pueda detectar el directorio de inclusión adicional o algo así, pero ni siquiera uso CLion para compilar/construir, así que realmente no sé qué hacer.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en C++, Makefile e include, sugiero utilizar CMake para gestionar la estructura de directorios y dependencias de tu proyecto. CLion puede usar CMake para generar archivos de construcción de tu proyecto y proporcionar autocompletado de código y verificación de errores mientras escribes código.

    Para usar CMake con la estructura actual de tu proyecto, puedes crear un archivo CMakeLists.txt en el directorio principal de tu proyecto. En este archivo, puedes especificar los directorios de inclusión utilizando la función include_directories().

    Aquí tienes un ejemplo de archivo CMakeLists.txt para tu proyecto:

    cmake_minimum_required(VERSION 3.10)
    project(LuftOS)

    Establecer el estándar de C++ a C++11

    set(CMAKE_CXX_STANDARD 11)

    Agregar el directorio del kernel como un subdirectorio

    add_subdirectory(kernel)

    Agregar el directorio de inclusión a la lista de directorios donde buscar los encabezados

    include_directories(${PROJECT_SOURCE_DIR}/kernel/include)

    Luego, en tu archivo kernel/CMakeLists.txt, puedes especificar los archivos fuente para el objetivo del kernel:

    add_library(kernel
    src/Kernel.cpp
    src/Bitmap.cpp)

    Con estos archivos CMake, puedes generar archivos de construcción para CLion seleccionando “Importar proyecto desde fuentes” y señalando al directorio raíz de tu proyecto. CLion generará un proyecto basado en CMake que incluye tus directorios de inclusión y deberías tener autocompletado de código y verificación de errores para tus encabezados.

    Incluso si no utilizas CLion para compilar/construir, el uso de CMake puede ayudarte a gestionar las dependencias de tu proyecto y facilitar su manejo a largo plazo.

Comments are closed.