En CLion, biblioteca de solo encabezado:el archivo no pertenece a ningún objetivo del proyecto, es posible que las funciones de información del código no funcionen correctamente

 C Programming >> Programación C >  >> Tags >> CLion
En CLion, biblioteca de solo encabezado:el archivo no pertenece a ningún objetivo del proyecto, es posible que las funciones de información del código no funcionen correctamente

Pequeño fondo

Estaba teniendo el mismo problema, aunque el proyecto no era solo de encabezado, sin embargo, los archivos abiertos de inc la carpeta lanzaba la advertencia antes mencionada, aunque el archivo CMake claramente marcaba esa carpeta como include_directory .

Los archivos *.hpp no ​​pertenecen a ${SOURCE}

include_directories("${PROJECT_SOURCE_DIR}/inc/")
add_subdirectory(src)
add_executable(${EXECUTABLE_NAME} main.cpp ${SOURCE})

Dado que este es un archivo CMake perfectamente válido y agregar los archivos de inclusión a los archivos fuente no es idiomático, no quería modificar el archivo CMake.

La solución

Como se describe en el foro oficial de JetBrains, el archivo CMake es válido y la advertencia se muestra debido a la incapacidad de CLion para indexar correctamente los archivos de encabezado. La solución sugerida extraída del enlace es hacer clic con el botón derecho en la carpeta y Mark directory as | Library Files /Project Sources and Headers .


Clion toma información sobre los archivos fuente del sistema de compilación CMake. Cuando agrega cualquier archivo cpp a la lista de fuentes, CMake informa automáticamente sobre el encabezado con el mismo nombre. Entonces, si los nombres de cpp/h difieren (o no tiene ningún archivo cpp), debe incluir el encabezado manualmente.

set(Sources my_lib.cpp)
set(Headers header_of_my_lib.h)
add_executable(superlib ${Sources} ${Headers})

Si no tiene ningún ejecutable, puede omitir la última línea, CLion aún sabrá acerca de los archivos


No