web-dev-qa-db-ja.com

CLionインデクサーはプロジェクトディレクトリの一部のインクルードを解決しません

次の構造を持つCLion C++プロジェクトがあります。

    project
       ---->my_includes
       |   ----> my_own.hpp
       ---->source
           ----> my_app
               ----> my_src.cpp

My_src.cppの最初の行は

#include "my_includes/my_own.hpp"

この組み込み形式を必要とする外部ビルドシステムを使用しています。問題は、インクルードヘッダーで定義されたソースファイルで関数を使用すると、インクルードにカーソルを合わせようとするとCLionが「my_own.hppが見つかりません」と表示することです。

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

12
CPayne

CLionを使用するには、_CMakeLists.txt_を作成する必要があります。すべてのソースファイルを宣言するだけで十分です。scons(またはその他のビルドシステム)をcmakeに変換する必要はありません。

CMakeLists.txtを手で書く必要はありません。CLionに依頼することができます:

  • _File | New CMake Project from Sources..._(CLion 2019.2以降)
  • _File | Import project ... |_(古いCLion)

そして、プロジェクトを含むディレクトリをポイントします。

生成された_CMakeLists.txt_を編集し、cmakeコマンドを追加して、インクルードの場所をCLionに指示します(実際にはコンパイラーに通知し、CLionはその情報を再利用します)。

ソースファイルは_#include "my_includes/my_own.hpp"_としてincludeを使用するため、ディレクトリ_my_includes_を含むベースディレクトリにcmakeを指定する必要があります。

_include_directories(.)
_

ここで、ドットは_CMakeLists.txt_を含むディレクトリと同じディレクトリを意味します。

レイアウトを再現するプロジェクトでテストし、_my_src.cpp_から_my_own.hpp_に移動できます。

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

22
marco.m

これは、CLionで正しく開くためのCMakeベースのプロジェクトでなければなりません。 CMakeを初めて使用する場合は、CMakeの基本チュートリアルを確認してください。 https://www.jetbrains.com/help/clion/2016.1/quick-cmake-tutorial.html

0
nastasiak2512