私のプロジェクトの外にあるClionを含むディレクトリを含めるには、いつでも-I somedir
フラグを使用します。Clionにディレクトリを含める
/project
CMakeLists.txt
/src
/Graph
Graph.h
Graph.cpp
/Dijkstra
Dijkstra.h
Dijstra.cpp
は私が/src
ディレクトリに私のコードをしたい:この時間は、しかし、私がやりたいことは、このような階層構造を持つことです。そして、それだけでなく、例えば、ファイル内にもDijkstra.h
私はこのようなGraph.hを含める:#include "Graph/Graph.h
と、このようではありません:#include "../Graph/Graph.h
。
私だけ-I src
フラグを追加した場合、私はDijkstra.h
ファイル内だと私はGraph.h
を含めるしたい場合は、その後、私は私が欲しいものではありませんこれは、#include "../Graph/Graph.h
を記述する必要があります。
私はINCLUDE_DIRECTORIES(src)
も追加しようとしました。上記の問題を修正しましたが、コンパイルしようとするとリンカーエラーundefined reference to...
が発生しました。
set(SOURCE_FILES
src/Dijkstra/Dijkstra.h
src/Dijkstra/Dijkstra.cpp
src/Graph/Graph.h
src/Graph/Graph.cpp)
add_executable(someprojectname ${SOURCE_FILES})
をし、それは私がこのようなファイルをインクルードしなければならなかった以前の問題を、持ち帰っ:#include "../Graph/Graph.h"
を。
私が望む動作を得るためにこれを正しく行うにはどうすればよいですか?
を、グラフ/ * /含めますSET(DIJKSTRA_INCLUDE_DIR Dijkstra/include /)INCLUDE_DIRECTORIES($ {GRAPH_INCLUDE_DIR} $ {DIJKSTRA_INCLUDE_DIR})を使用して、SET(GRAPH_INCLUDE_DIRグラフ/インクルード)を試してください。 – Varun
まったく疑問はありません。最後の変種を使用して 'include_directory(src/Graph src/Dijkstra)'を追加するとどうなりますか? – fghj
私が提案したやり方は、ディレクトリ構造を作るより良い方法です。あるディレクトリには.cpp、別のディレクトリには.hファイルがあります。これらのファイルを1つのディレクトリに混ぜる理由 – Varun