JetBrains Fleet 1.47 ヘルプ

JSON compilation database の生成

プロジェクト用の compile_commands.json を生成するには、コンパイラー、ビルドシステム、専用ツールを使用できます。

  • CMake

    CMAKE_EXPORT_COMPILE_COMMANDS(英語) フラグを使用します。どちらかを実行できます

    cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .

    または、CMakeLists.txt スクリプトに次の行を追加します。

    set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

    compile_commands.json ファイルは build ディレクトリに置かれます。

  • Clang (バージョン 5.0 以降)

    -MJ(英語) オプションは、入力ファイルごとにコンパイルエントリを書き込みます。これをプロジェクト内の各ファイルに使用し、出力を JSON 形式の compilation database にマージできます ( 手順の例(英語)を参照)。

  • Ninja (バージョン 1.2 以降)

    コンパイルデータベースを取得するには、-t compdb(英語) オプションを使用します。ルール名は引数として必要であることに注意してください。-t compdb rule1 rule2... ルールリストは Ninja ビルドファイル(デフォルト名 build.ninja(英語))で提供されます。たとえば、次のようになります。

    rule cc command = gcc -c -o $out $in description = CC $out rule link command = gcc -o $out $in description = LINK $out

    cc という名前の 1 つのルールに対して compilation database を生成するには、次のように指定します。

    -t compdb cc > compile_commands.json

    ただし、複数のルールの場合は、ビルドファイルから正確な名前を取得し、それを compdb に渡す必要があります ( 考えられる解決策の 1 つ(英語)を参照してください)。

  • ベースのプロジェクトを作成する

    compiledb-generator(英語) ツールは、メイクベースのビルドシステム用のコンパイルデータベースを作成します。

  • Bear および Intercept-Build ツール

    scan-build(英語)Bear(英語)intercept-build は、ビルド中にコンパイラー呼び出しをインターセプトすることにより、compilation database を取得するのに役立つツールです。

  • SourceTrail Visual Studio 拡張機能

    SourceTrail エクステンション(英語)は、Visual Studio ソリューション用のコンパイルデータベースを生成します。