Gcc 如何获得Linux内核编译文件的完整列表?

Gcc 如何获得Linux内核编译文件的完整列表?,gcc,compilation,makefile,kernel,source-insight,Gcc,Compilation,Makefile,Kernel,Source Insight,我正在从事不同的Android项目,需要在SourceInsight中为不同的内核源代码树设置项目。 内核中有许多未使用的文件,我想找到一种方法来找出在内核中编译的所有.c、.h、.S文件。当我手动选择源文件时,我几乎疯了 我编写了一个脚本,可以提取与.o文件相对应的文件,但是有些.o文件是由多个.c文件编译的,这使得它更加复杂 有没有更简单的方法来了解在编译过程中处理哪些文件 如有任何信息,将不胜感激 这是我在stackoverflow的第一个问题,我非常喜欢这里 谢谢。我总是需要搜索内核源代

我正在从事不同的Android项目,需要在SourceInsight中为不同的内核源代码树设置项目。 内核中有许多未使用的文件,我想找到一种方法来找出在内核中编译的所有.c、.h、.S文件。当我手动选择源文件时,我几乎疯了

我编写了一个脚本,可以提取与.o文件相对应的文件,但是有些.o文件是由多个.c文件编译的,这使得它更加复杂

有没有更简单的方法来了解在编译过程中处理哪些文件

如有任何信息,将不胜感激

这是我在stackoverflow的第一个问题,我非常喜欢这里


谢谢。

我总是需要搜索内核源代码,而不必查看powerpc、ia86、sparc、alpha、infiniband等。假设您可以编译内核,有几种方法可以做到这一点:

1) 从Makefile.build调用$K/scripts/basic/fixdep.c,为每个源创建一个.cmd文件,其中包含有关编译选项、编译源/目标和依赖项列表的信息。修改此选项以编写仅包含源文件或源/依赖项的单独文件

2) Hack$K/scripts/Makefile.build记录当前编译的文件。请参见cmd_as_o_S和rule_cc_o_c区域

选项1是最好的,但需要一些编码。选项#2是最简单的,但它是一个真正的黑客,并且不会拾取依赖项