包括 - 您使用的是什么:分析工具包括在C和C ++源文件中包含

2021-04-22 11:20:14

用于CLANG的工具分析C和C ++源文件中的#INCLUDES

"包括您使用的内容"意思是:对于您在foo.cc中使用的每个符号(类型,函数变量或宏),foo.cc或foo.h应该#include一个导出该符号声明的.h文件。该包含 - 您使用的工具是一个程序,可以使用clang库构建,以便分析源文件的#includes以查找包含 - 您使用的违规,并建议它们的修复。

包括 - 你使用的主要目标是去除多余的#includes。它通过弄清楚这个文件实际上不是实际需要的#Includes(对于两个.cc和.h文件)来实现这一点,并在可能的情况下用前向声明替换#includes。

Andrea Bocci,David Callu,Emil Gedda,Florian Schmaus,John Bywore,Kim Grasman,Liam Keegan,Omar Sandoval,PPPyx,Romain Geissler,Seth R Johnson,Tim Gates。对不起,如果我们&#39错过了任何人。

源代码可以从包含 - 您使用-0.15.src.tar.gz下载。它相当于0.15标签和Clang_11分支。

Aaron Puchert,Kim Grasman,Miklos Vajna,Nick Outdijk,Uladzislau Paulovich的贡献。对不起,如果我们&#39错过了任何人。

源代码可以从包含 - 您使用-0.14.src.tar.gz下载。它相当于0.14标签和clang_10分支。

Alexander Grund,I-Ky,John Bytheway,Julien Cabieces,Kim Grasman,LeventeGyëzýLénárt,Miklos Vajna,Uladzislau Paulovich和Zachary Henkel的贡献。对不起,如果我们&#39错过了任何人。

源代码可以从包含 - 您使用-0.13.src.tar.gz下载。它相当于0.13标签和clang_9.0分支。请注意,这次有' s no clang_9.0标签,以避免标签/分支混淆。

[iwyu_tool]破解变化:额外的args不再自动以-Xiwyu预混(所以你也可以为Clang Args使用它们)

Asier Lacasta,David Robillard,Ignat Loskutov,Jakub Wilk,John Bywore,J.ru,Kim Graisman,Martin Villagra,Miklos Vajna,Tomkpz,Tomkz,Tom Rix中的贡献。对不起,如果我们&#39错过了任何人。

源代码可以从包含 - 您使用-0.12.src.tar.gz下载。它相当于clang_8.0标签。

Asier Lacasta,Christian Venegas,Ignat Loskutov,J.ru,Kim Grasman,Martin Villagra,Paul Seyfert,Phantal,Philip Pfaffe,Scott Ramsby,Tom Rix,Victor Poughon的贡献。对不起,如果我们&#39错过了任何人。

源代码可以从包含-worm-used-0.11.src.tar.gz下载。它相当于clang_7.0标签。

Bungeman,KimGräsman,Alex Kirchhoff,J.Ru,Orgad Shaneh,Christoph Weiss的贡献。对不起,如果我们&#39错过了任何人。

源代码可以从包含 - 您使用-0.10.src.tar.gz下载。它相当于clang_6.0标签。

J.Ru,KimGräsman,Kristoffer Henriksson,Paul Seyfert的贡献。对不起,如果我们&#39错过了任何人。

注意:从现在开始,我们将无法生成二进制版本。对于多个平台存在良好的套餐,我们依靠社区贡献来增加这里的可用性。

源代码可以从包含 - 您使用-0.9.src.tar.gz下载。它相当于clang_5.0标签。

Zelenko,Ivankoster,KimGräsman,Kristoffer Henriksson,Mineo,Nocnokneo,Svennanne,Volodymyr Sapsai,Xuzhen1994的贡献。对不起,如果我们&#39错过了任何人。

改善IWYU'对隐式的理解包括DIRS;目前的源文件' s的dirname现在是候选人。

感谢您的所有贡献和帮助Bothari,Eugene Zelenko,Flamefire,KimGräsman。对不起,如果我错过了任何人。

感谢您的所有贡献和帮助Jvapen,KimGräsman,Philip Pfaffe,Pseyfert,Realazthat,Sylvestre Ledru,Thosrtanner。对不起,如果我错过了任何人。

感谢您的所有贡献斯科特豪索,Bungeman,TPLTNT,Chris Glover,KimGräsman。并感谢您所有的帮助Jérémie德泰尔,理查德汤姆森,DPUNSET,CONSESTLY,DAVE JOHANSEN,THOSRTANNER。对不起,如果我错过了任何人。

此版本获得了许多贡献,我要感谢Smpillaz,Paul Redmond,Chris Glover,Ryan Pavlik,Showard314,Fabian Gruber,KimGräsman为您的帮助。借助Dave Johansen,Mmendez534,Sylvestre Ledru用于包装包括 - 您使用的内容。对不起,如果我错过了任何人。

兼容LLVM + CLANG 3.4的IWYU版本已发布。源代码可以从包含-wor-used-3.4.src.tar.gz下载。它相当于clang_3.4标签。

我们正在将下载转移到Google Drive。与LLVM + Clang 3.3兼容的IWYU版本可以在包含 - 您使用-3.3.tar.gz中找到。它相当于clang_3.3标签。

现在,Clang 3.0已经出来,我发布了一个针对Clang 3.0的IWYU版本。它相当于R330。它可以在&#39中使用;下载'侧面窗格的部分。要使用,只需CD到LLVM / Clang树中的LLVM / Tools / Clang / Tools,而Untar包括来自该位置的What-You-used-3.0-1.tar.gz。然后CD包含 - 您使用和类型制作。 (CMakeFile也可用。)您可以运行Make Check-IWYU来运行IWYU测试套件。

它刚刚向我指出的是我对LLVM + Clang 2.9建造的塔尔巴尔,它实际上与LLVM + Clang 2.9合作。我必须弄错了包装它。我再次尝试了我'根据我的测试,无论如何,新版本都适用于它' s应该是。

我终于到了释放一个针对LLVM + Clang 2.9的滑石。查看'下载'侧面窗格的部分。这是IWYU的一个相当古老的IWYU版本,所以你' LL更好地下载当前的Clang + LLVM和SVN根版本的包含 - 您使用,并从中构建。有关更多详细信息,请参阅README.TXT。

工作一直在继续愤怒的步伐,包括你使用的内容。它'现在的β质量绝对。 :-)好吧,早期的测试版。我没有常规发布,但SVN存储库经常更新,所以不要在这里缺乏新闻来意味着缺乏活动。

我非常高兴地宣布了alpha,版本0.1版本的包括 - 你使用。有关如何下载,安装和运行的说明,请参阅右侧的Wiki链接,包括 - 您使用的内容。

我释放了代码,因为它在A&#34下面释放了代码;早期和经常释放"方法。 IT'在IWYU的早期仍然很早,该计划可能会对任何非琐碎的代码都有错误。此外,它仍然具有Google特定位,在openSource版本中可能无法毫无意义。这一切都会随着时间的推移而得到修复。随意挖掘并建议补丁以帮助修复!

如果您想遵循关于包含 - 您使用的讨论,以及与更改更新,请订阅Google集团。