1

さまざまな Android プロジェクトに取り組んでおり、Source Insight でさまざまなカーネル ソース ツリーのプロジェクトをセットアップする必要があります。カーネルには未使用のファイルがたくさんあります。カーネルでコンパイルされたすべての .c、.h、.S ファイルを選択する方法を見つけたいです。ソースファイルを手動で選択したとき、私はほとんど頭がおかしくなりました。

.o ファイルに対応するファイルを取得できるスクリプトを作成しましたが、いくつかの .o ファイルは複数の .c ファイルによってコンパイルされているため、より複雑になっています。

コンパイル プロセスでどのファイルが処理されるかを簡単に知る方法はありますか?

どんな情報でも大歓迎です。

これは、stackoverflow での最初の質問です。ここが大好きです。

ありがとう。

4

1 に答える 1

2

私は常に、powerpc、ia86、sparc、alpha、infiniband などを見ずにカーネル ソースを検索する必要があります。カーネルをコンパイルできると仮定すると、これを行ういくつかの方法があります。

1) Makefile.build から $K/scripts/basic/fixdep.c が呼び出され、コンパイル オプション、コンパイル ソース/ターゲット、および依存関係リストに関する情報を含む各ソースの .cmd ファイルが作成されます。これを変更して、ソース ファイルまたはソース/依存関係のみを含む別のファイルを書き込みます。

2) $K/scripts/Makefile.build をハックして、現在コンパイルされているファイルをログに記録します。cmd_as_o_S および rule_cc_o_c 領域を参照してください。

オプション #1 が最適ですが、少しコーディングが必要です。オプション #2 は最も簡単ですが、真のハックであり、依存関係を取得しません。

于 2013-12-23T22:09:27.487 に答える