使用 Clang/Ninja 产生所有可能的错误/继续使用 Ninja / Ninja 相当于 make -k

Produce all possible errors with Clang/Ninja / Keep going with Ninja / Ninja equivalent of make -k

我正在编译一个相当大的库,其中包含许多我需要引入的外部依赖项。每次我尝试编译时,我都会收到有关缺少 header 文件的新错误。然后我必须去寻找 header/library 的位置并将其添加到项目包含中。这个compilation-then-find-header/source的过程反复进行,耗费了很多时间。

我希望编译器继续尝试在一个错误列表中构建和输出所有缺失的 header。这可能使用 Clang 吗?如果可以,我该如何控制它?在相关说明中,一旦我拥有所有 headers 是否可以告诉 Clang 报告所有链接器 errors/undefined 引用,因此我不必对源文件重复此过程?

我正在寻找编译器标志以打印出所有可能的错误(缺少 header)和所有未定义的引用。换句话说,我希望编译继续通过第一个有错误的文件并尝试编译项目中的所有文件。编译器是 Clang (C/C++) 版本 8.0.2。制作工具是 ninja (1.5.3)。使用 CMake (3.6.4) 生成 Make 文件。

更新: 回想起来,我最初的问题是在错误的工具中寻求解决方案。我需要将标志传递给我的制作工具 Ninja,而不是将标志传递给 Clang。

来自ninja --help

-k N     keep going until N jobs fail [default=1]

所以我 运行 忍者命令如下:

ninja -k 100

继续,直到发现 100 个错误或构建成功。需要注意的一件事是,如果错误文件是继续构建过程所必需的,则某些错误可能只会停止整个构建。