如何生成丢失的#include 文件列表

Jos*_*osh 3 c++ makefile

背景:我正在处理一个大型 C++ 项目,该项目具有多个可执行文件和库输出以及一组工作 make 文件(即假设您拥有整个代码库,您可以键入 make 并且它将构建所有库和可执行文件)。

我的问题是我必须部分编译项目,并简单地链接已经为项目其他部分编译的库。我已经获得了项目其他部分的 lib 文件,但不是使用这些库所需的所有头文件。

问题:如何生成我需要请求的文件列表,以便成功完成编译,然后链接依赖于项目预编译部分的项目部分?仅通过运行 make 文件,我就会收到第一个缺少的依赖项的错误,但是如何生成所有依赖项的列表?

我尝试过的事情/示例:触发 make 脚本以编译和链接moduleA. make 搅动了一段时间,然后发出一个它无法找到的错误,该错误moduleBCommon.h包含在moduleAxyz.h. 它无法找到它,因为它不存在于磁盘上...我尚未获得该文件,必须请求它。

Hen*_*tad 5

如果您使用的是 gcc 编译器,此命令将为您提供缺少的头文件:

gcc -M -MG filename.cpp
Run Code Online (Sandbox Code Playgroud)

这列出了所有依赖项:

gcc -M filename.cpp
Run Code Online (Sandbox Code Playgroud)

这列出了不属于系统标头的依赖项:

gcc -MM filename.cpp
Run Code Online (Sandbox Code Playgroud)