2016-03-23 14 views
5

に含まれる解決されませんこの組み込み形式を必要とする外部ビルドシステム。問題は、インクルードしたヘッダーに定義されているソースファイル内の関数を使用すると、インクルードの上にカーソルを置こうとすると「my_own.hppが見つかりません」とCLionが言います。CLionインデクサは、いくつかは、私は以下の構造を有するCLion C++プロジェクト持つプロジェクトディレクトリ

インクルードディレクトリにプロジェクトソースまたはヘッダーが含まれているとマークしようとしましたが、これで修正されませんでした。何か案は?

+0

投稿するCMakeLists.txt –

答えて

10

CLionを満足させるには、CMakeLists.txtを作成する必要があります。すべてのソースファイルを宣言すれば十分です。scoon(または他のビルドシステム)をcmakeに変換する必要はありません。

CMakeLists.txtを手書きで書く必要がなくても、それを行うようにCLionに依頼することができます:File | Import project ... |あなたのプロジェクトを含むディレクトリをポイントします。

ここで、生成されたCMakeLists.txtを編集し、cmakeコマンドを追加してincludeを見つける場所をCLionに伝えます(実際にはコンパイラに伝えるため、CLionはその情報を再利用します)。ソースファイルが#include "my_includes/my_own.hpp"として含ま使うので

、ディレクトリmy_includesを含むベースディレクトリをCMakeの指示する必要があります:

ドットが CMakeLists.txtを含むものと同じディレクトリを意味
include_directories(.) 

レイアウトを再現したプロジェクトでテストしたところ、my_src.cppからmy_own.hppに移動できます。

次に、コンソールでsconsを使用する必要があります。また、あなたのscons(またはmakeなど)を呼び出すcmakeコマンドadd_custom_target()を追加することもできます。これにより、CLionからビルドエラーにナビゲートすることもできます。

+0

ありがとうございました! – CPayne

+0

私は同様の問題を抱えていましたが、include_directoriesが必要でした。私はいくつかのものを追加しなければなりませんでしたが、今はうまくいきます。 – njfife

0

これは、CLionで正しく開くにはCMakeベースのプロジェクトである必要があります。 CMakeを初めてお使いの方は、CMakeの基本チュートリアルをチェックしてください。https://www.jetbrains.com/help/clion/2016.1/quick-cmake-tutorial.html

+1

私は自分のビルド(SCONSのみ)にCMakeを使用していませんが、CMakeプロジェクトを持つことは、CLionが特定のファイルを探す場所を知る唯一の方法ですか? – CPayne

+0

はい、CLionがCMakeをどのように使用しているかについて話し合った場合は、わずか2つのサンプルを選択してみましょう: 1.コード生成が正常に動作しているとき、override指令のようにコンパイラの機能の有無をチェックします。 CMakeで設定されているすべてのオプションを持つコンパイラがサポートしている場合にのみチェックしてください。これは少なくともC++ 11を意味し、コンパイラのバージョンはもちろんそれをサポートするはずです。 2.リファクタリングの名前を変更し、テキストの使用ではなく、実際のコンテキストの使用状況を確認します。 – nastasiak2512

+0

これを可能にするには、CLionはコードについてかなり知っておく必要があります。また、プロジェクトのソースファイル、ヘッダーとヘッダーの検索パス、コンパイラフラグ、ツールチェーンと使用されるプラットフォーム、コンパイラの定義済みマクロなど、多くの要素に依存します。 したがって、CLionはCMakeのプロジェクトモデルを分析して、そこからすべての情報を取り出し、解析、解決などの機能に使用します。 – nastasiak2512

関連する問題