1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Makefile で作成されたプログラムに対して Sourcetrail で解析する

Posted at

Makefile で作成されたプログラムに対して Sourcetrail で解析する

Sourcetrail を使って Makefile でビルドするプロジェクトの解析方法を説明します。

入手方法

最新版は
https://github.com/CoatiSoftware/Sourcetrail/releases/latest
からダウンロードできます。

プロジェクト作成方法

プロジェクト作成方法 にはいくつかありますが、よく使うのは compile_commands.json を使う方法、Windows なら Visual Studio のプロジェクトから作る方法があります。このページでは Makefile から compile_commands.json を生成して、Sourcetrail のプロジェクトを生成する方法を説明します。

compile_commands.json を生成する方法

cmake を使うプロジェクトの場合

cmake で作成されたプロジェクトの場合 https://www.sourcetrail.com/documentation/#CreatingaNewProject にも記載されているように

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 <ソースコードのパス>

というように実行するとカレントディレクトリに compile_commands.json を生成してくれるのでそれを利用できます。
https://www.sourcetrail.com/documentation/#CreatingaNewProject によるとVisual Studio 用の Generator を使用した場合は CMAKE_EXPORT_COMPILE_COMMANDS は使えないらしいです。(未確認)

Makefile を使うプロジェクトの場合

Makefile のプロジェクトの場合はこの方法は使えないので compiledb を使います。

compiledb のインストール方法

pip3 install compiledb

pip でインストールします。ここでは python 3 を対象にしているので pip3 を使います。

compiledb での compile_commands.json の生成方法

compiledb を指定して make を実行するとカレントディレクトリに compile_commands.json が生成されます。

compiledb make

大きなプロジェクトでは、ビルドが終わって最後に compile_commands.json に書き出すときに時間がかかります。

compiledb -n make

とすることで、実際のビルドはせずに compile_commands.json を生成することだけということができるらしいですが、make の生成物に依存する処理がある場合、エラーになるので、実際にビルドしてから compile_commands.json を生成したほうが、確実かもしれません。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?