1. ホーム
  2. c++

[解決済み】CLionで、ヘッダのみのライブラリ:ファイル "どのプロジェクトターゲットにも属していない、コードインサイト機能が正しく動作しない可能性がある" の件

2022-02-14 21:25:01

質問

cmakeコマンドでヘッダのみのライブラリプロジェクトをセットアップしています。

add_library(my_library INTERFACE)

を追加し、さらに

target_sources(my_library INTERFACE ${MY_LIRBARY_HEADER_FILES})

が、ソースファイルを開くと警告が出ます。

このファイルは、どのプロジェクトターゲットにも属していないため、コードインサイト機能が正しく動作しない可能性があります。

と、コード補完などの機能の多くを失ってしまいます。

CLionがヘッダのみのライブラリで通常の機能を提供できるようにするには、どのような設定が必要でしょうか。

どのように解決するのですか?

小さな背景

私は同じ問題を抱えていました。プロジェクトはヘッダのみではありませんでしたが、それでも inc フォルダは、CMake ファイルでは明らかに include_directory .

*.hpp ファイルは ${SOURCE} に属していません。

include_directories("${PROJECT_SOURCE_DIR}/inc/")
add_subdirectory(src)
add_executable(${EXECUTABLE_NAME} main.cpp ${SOURCE})

これは完全に有効なCMakeファイルであり、ソースファイルにincludeファイルを追加することはイディオムではないので、CMakeファイルを修正することは避けました。

解決方法

公式サイトでも紹介されているように JetBrainsフォーラム この警告は、CLion がヘッダーファイルのインデックスを適切に作成できないために表示されるもので、CMake ファイルは確かに有効です。リンク先から抽出した回避策としては フォルダを右クリックし Mark directory as | Library Files / Project Sources and Headers .

そのため、このヘッダが実行ファイルに含まれないと、CLion は一部のコードインサイト機能が正しく動作しない可能性があることを通知します。回避策として、Library Files/Project Source and Headers フォルダに "Mark directory as" を使用することができます。