Y compris dans les répertoires du Clion

Chaque fois que je voulais inclure un répertoire qui était situé à l'extérieur de mon projet avec Clion je voudrais utiliser le -I somedir drapeau. Cette fois, cependant, ce que je veux faire, c'est d'avoir une hiérarchie comme ceci:

/project
   CMakeLists.txt
   /src
      /Graph
         Graph.h
         Graph.cpp
      /Dijkstra
         Dijkstra.h
         Dijstra.cpp

Je veux mon code dans une /src répertoire. Et non seulement cela, mais aussi, par exemple, à l'intérieur du fichier Dijkstra.h je veux inclure le Graphique.h comme ceci: #include "Graph/Graph.h et non comme ceci: #include "../Graph/Graph.h.

Si j'ai seulement ajouter un -I src drapeau, puis, si je suis à l'intérieur de la Dijkstra.h fichier et je voulais inclure Graph.h, je devrais écrire #include "../Graph/Graph.h, ce qui n'est pas ce que je veux.

J'ai donc essayé d'ajouter aussi de la INCLUDE_DIRECTORIES(src). Qui a résolu le problème ci-dessus, cependant lorsque j'essaye de compilé, j'ai eu une erreur liens undefined reference to....

Donc j'ai essayé d'ajouter les fichiers un par un, comme ceci:

set(SOURCE_FILES
        src/Dijkstra/Dijkstra.h
        src/Dijkstra/Dijkstra.cpp
        src/Graph/Graph.h
        src/Graph/Graph.cpp)
add_executable(someprojectname ${SOURCE_FILES})

et qui ont ramené au problème précédent, où j'ai dû inclure les fichiers comme ceci: #include "../Graph/Graph.h".

Comment puis-je faire cela correctement pour obtenir le comportement que je veux ?

je voudrais vous proposons d'utiliser la structure de répertoire comme ce Graphique/src/*.rpc , Graphique/include/*.h , Dijkstra/src/*.rpc et Dijkstra/include/*.h.. Alors essayez de DÉFINIR(GRAPH_INCLUDE_DIR Graphique/include/) , SET(DIJKSTRA_INCLUDE_DIR Dijkstra/include/) INCLUDE_DIRECTORIES(${GRAPH_INCLUDE_DIR} ${DIJKSTRA_INCLUDE_DIR })
Pas question claire. Si vous utilisez la dernière version et ajouter include_directories(src/Graph src/Dijkstra) ce qui se passe?
La façon dont je l'ai suggéré est le meilleur moyen de prise de structure de répertoire . .rpc dans un répertoire .h fichier dans un autre répertoire. Pourquoi mélanger ces fichiers dans un seul répertoire.

OriginalL'auteur dimitris93 | 2016-04-27