J'ai un projet CLion C++ qui a la structure suivante:
project
---->my_includes
| ----> my_own.hpp
---->source
----> my_app
----> my_src.cpp
La première ligne de my_src.cpp est
#include "my_includes/my_own.hpp"
J'utilise un système de construction externe qui nécessite ce format d'inclusion. Le problème est que si j'utilise une fonction dans mon fichier source défini dans l'en-tête inclus, CLion dit "Je ne trouve pas mon_own.hpp" si je tente de survoler l'inclusion.
J'ai essayé de marquer le répertoire d'inclusion comme contenant la source du projet ou les en-têtes, mais cela n'a pas résolu le problème. Des idées?
Vous devez créer un CMakeLists.txt
pour que CLion soit heureux. Il suffit de déclarer tous les fichiers source, vous n'avez pas à convertir vos scons (ou tout autre système de construction) en cmake.
Vous n'avez même pas besoin d'écrire manuellement le fichier CMakeLists.txt, vous pouvez demander à CLion de le faire: File | Import project ... |
, puis de pointer vers le répertoire contenant votre projet.
Maintenant, éditez le CMakeLists.txt
généré et ajoutez une commande cmake pour indiquer à CLion où trouver l'inclus (en réalité pour indiquer le compilateur, et CLion réutilisera ces informations).
Puisque vos fichiers source utilisent include comme #include "my_includes/my_own.hpp"
, vous devez indiquer à cmake le répertoire de base contenant le répertoire my_includes
:
include_directories(.)
Où le point signifie le même répertoire que celui contenant le CMakeLists.txt
.
J'ai testé avec un projet reproduisant votre mise en page et depuis my_src.cpp
, je peux accéder à my_own.hpp
.
Ensuite, pour construire, vous devez toujours utiliser scons dans une console. Il est également possible d'ajouter une commande cmake, add_custom_target()
qui appellera vos scons (ou votre marque, ou autre), afin que vous puissiez également naviguer de CLion aux erreurs de construction.
Ceci devrait être un projet basé sur CMake à ouvrir correctement dans CLion . Consultez le didacticiel de base de CMake si vous êtes nouveau dans CMake: https://www.jetbrains.com/help/clion/2016.1/quick-cmake- tutorial.html