如何从依赖文件(.d)中删除某些(非系统)headers?

How to eliminate certain (non system) headers from dependency files(.d)?

我们link在一个由许多header个文件组成的图书馆(TAO)中。

每次我 运行 在 cpp 文件上执行 pre-processor 命令时( g++ -MM $< $@ ),这些库文件会自动包含在生成的每个 .d 文件中。

这些显然不是系统文件,而且就我们而言几乎从未改变,所以我想从我的 .d 文件中删除它们。

如果没有使用 sed 过滤掉这些 header 文件,是否有任何内置方法可以完成此操作?

您可以指示 gcc 将某些路径视为系统 headers 和 -isystem;并且 g++ -MM 忽略 system-headers.