J'ai un projet C++ constitué de plusieurs bibliothèques partagées. Le code source de chaque bibliothèque est placé sous son sous-arbre de répertoires. Le fichier CMakeList principal contient une liste de directives add_subdirectory()
. Les fichiers CMakeList dans chaque sous-répertoire contiennent des définitions comme le suivant:
set (SOURCE_FILES
util/src/Connector.cpp
pub/util/Connector.h
)
add_library(channels SHARED $( SOURCE_FILES))
SET_TARGET_PROPERTIES(channels PROPERTIES LINKER_LANGUAGE CXX)
où channels
est le nom du sous-répertoire.
Bien que le chemin de recherche pour les fichiers d'inclusion soit correctement défini et que la compilation fonctionne, KDevelop ne voit pas le fichier d'en-tête Connector.h
et, par conséquent, son analyse et son navigateur de code/classe ne fonctionnent pas.
Je sais que le fichier .kdev_include_paths
dans chaque répertoire pourrait résoudre le problème. Malheureusement, cette approche ne peut pas être utilisée en raison de quelques contraintes supplémentaires dans notre environnement de développement.
Existe-t-il une autre façon de résoudre ce problème?
J'utilise le compilateur Intel C/C++ sur RHEL 7.1 avec KDevelop 5.0.4 exécuté depuis l'AppImage.