“包括您使用的内容”

Or *_*esh 5 c++ debian gcc clang

我阅读了有关“包含什么内容”的工具,该工具可以帮助从源代码中清除多余的包含。我知道有一个用于编译器LLVM(clang)的版本和一个用于GCC的版本。

我的问题是:

  1. 为什么此工具依赖于编译器,而不是针对编译器的“跨平台”。为什么从一开始该工具的创建者就没有使其独立于编译器?它与它的特殊实现有关吗?
  2. 如果我想获得与LLVM兼容的工具版本,并且想使其与GCC兼容(因为我正在使用GCC),那我该怎么办?

Fli*_*sey 1

在大多数情况下, Include-What-You-Use 应该能够处理任何有效的 C++ 代码库,无论该代码库是使用 GCC 还是 Clang 编写的。我最近有机会在一个非常大的代码库上运行 Include-What-You-Use ,该代码库通常使用 GCC 编译,并且运行良好。所以从这个意义上说它已经是兼容的。

也就是说,它可能无法完美工作。即使它是 Clang 代码库,它提供的某些信息也可能是错误的。因此,请务必手动验证输出。