详情介绍
使用方法
1. 下载本项目
2. 双击运行hello文件夹下的run.bat
3. 如果成功的话,hello项目将被清理,且将在hello文件夹下生成清理日志(可使用浏览器查看)
4. 将run.bat里面的./hello.vcxproj改成你自己的vs工程文件,就可以清理你的工程了
注意:使用前请备份你的代码
(如果无法正常使用,请试着安装visual studio 2013的32位运行时组件,可到官网:https://www.microsoft.com/zh-cn/download/details.aspx?id=40784 中下载vcredist_x86.exe并安装)
cxx-clean-include的一些测试结果
目前,已在网上的一些开源vs项目上测试使用了本工具(只是自行测试)
https://github.com/MSOpenTech/redis
该项目是由[MS Open Tech组织]将redis移植到windows下的版本,使用本工具清理msvs\RedisServer.vcxproj后发现共有28个文件(含.c文件和.h头文件)包含多余的#include,清理后仍可编译成功。 (清理前须将头文件包含路径中的$(SolutionDir)删掉)
cxx-clean-include的作用
由于cxx-clean-include基于llvm+clang库编写而成,依托于clang库对现有编译器的兼容,所以本项目也支持大部分msvc、gcc/g++的语法,并完整支持c++11标准。
cxx-clean-include可以做到
清除c++文件中多余的#include(不仅可以清理cpp、cxx等后缀的源文件,也可以清理源文件包含的h、hxx、hh等后缀的头文件)
自动生成前置声明(某些时候,会出现包含了某个文件,却仅使用了该文件内的类的指针或引用,而未访问其成员的情况,此时cxx-clean-include将移除相应的#include语句,并添加前置声明)
自动替换文件(某些时候,会出现#include了某个文件a,却仅使用到该文件内包含的其中一个文件b的情况,此时cxx-clean-include将遵循头文件路径搜索规则把原有的#include a语句替换成#include b语句)
针对整个项目进行分析,而不仅分析单个c++源文件,通过采用合适的冲突处理规则,尽可能清理源文件和头文件,并尽可能保证清理整个项目后,仍然没有编译错误
关于cxx-clean-include的实际作用,举个例子,假设有一个文件hello.cpp,里面的内容是:
#include "a.h" // a.h文件的内容是:class A{};
#include "b.h" // b.h文件的内容是:#include <stdio.h>
#include "c.h" // c.h文件的内容是:class C{};
#include "d.h" // d.h文件未被使用:class D{};
A *a; // 类A来自于a.h
void test_b() { printf(""); } // 函数printf来自于stdio.h
C c; // 类C来自于c.h
cxx-clean-include将对hello.cpp文件进行分析:
~ 1. 首先,由于hello.cpp仅使用到a.h、b.h、c.h的内容,因此,可移除#include "d.h"语句
~ 2. 其次,经过分析,hello.cpp仅使用了a.h中类A的指针,因此,可新增前置声明class A,并移除#include "a.h"语句
~ 3. 最后,hello.cpp虽然包含了b.h,却仅使用到b.h所包含的stdio.h文件,因此,可将#include "b.h"语句替换为#include <stdio.h>
于是,在使用cxx-clean-include对hello.cpp进行清理后,hello.cpp将变为
class A;
#include <stdio.h>
#include "c.h" // c.h文件的内容是:class C{};
A *a; // 类A来自于a.h
void test_b() { printf(""); } // 函数printf来自于stdio.h
C c; // 类C来自于c.h
可以看出,hello.cpp第1行和第2行均被替换为更合适的语句。第4行则被移除
注意:本项目在windows和linux系统下均可进行编译,具体编译过程可参考clang插件的编译方法。
cxx-clean-include的命令
cxx-clean-include目前支持清理visual studio项目(vs2005及以上版本),同时支持清理指定文件夹下的c++文件,同时输出结果是html格式,方便查看
1. 对于visual studio项目,可以使用以下命令:
cxxclean -vs vs项目名称
// 比如:cxxclean -vs d:/vs2005/hello.vcproj
// vs项目名称最好是绝对路径,如: d:/vs2005/hello.vcproj、d:/vs2008/hello.vcxproj
该命令将清理整个vs项目内的c++文件,同时将在当前文件夹自动生成清理日志
2. 对于单个文件夹,可以使用以下命令
cxxclean -clean 文件夹路径
// 比如:cxxclean -clean d:/a/b/hello/
// 文件夹路径最好是绝对路径,如: d:/a/b/hello/、/home/proj/hello/
该命令将清理该文件夹内的c++文件,同时将在当前文件夹自动生成清理日志
但很多情况下需要指定更详细的编译条件,如指定头文件路径、预定义宏等,clang库已内置提供了相应的命令行参数供使用,可使用如下方式(注意添加--号):
cxxclean -clean 文件夹路径 -- -I"你的头文件搜索路径" -D 需要预定义的宏 -include 需要强制包含的文件
(其中:-I、-D、-include均可使用多次)
// 例如:cxxclean -clean d:/a/b/hello/ -- -I"../../" -I"../" -I"./" -I"../include" -D DEBUG -D WIN32 -include platform.h
cxx-clean-include的命令行参数
在命令行中输入cxxclean -help可获取详细的命令行参数信息
cxx-clean-include提供以下选项:
-vs=<string> - 清理指定的visual studio项目(vs2005版本及以上): 例如:
cxxclean -vs ./hello.vcproj
该命令将清理hello项目中的所有c++文件
-vs可和-clean结合使用,例如:
cxxclean -vs hello.vcproj -clean hello.cpp
该命令将根据hello.vcproj项目的配置(如头文件搜索路径、预定义宏等配置)来清理hello.cpp文件
-clean=<string> - 清理指定的文件或文件夹, 例如:
1. cxxclean -clean ../hello/
该命令将清理hello文件夹(包括子文件夹)下的c++文件
2. cxxclean -clean hello.cpp
该命令将清理hello项目中的所有c++文件
-no - 即no overwrite的首字母缩写, 当传入此参数时,本工具仅执行分析并打印分析结果,所有的c++文件将不会被改动
-onlycpp - 仅允许清理源文件(cpp、cc、cxx后缀等), 禁止清理头文件(h、hxx、hh后缀等)
-print-project - 打印本次清理的配置, 例如:打印待清理的c++文件列表、打印允许清理的文件夹或c++文件列表等等
-print-vs - 打印visual studio项目的配置文件内容, 例如:打印头文件搜索路径、打印项目c++文件列表、打印预定义宏等等
下载地址
人气软件

MarkdownEditor(Markdown编辑器) v6.1.0 官方免费安装版
EditPlus(文字编辑器) 64位 v6.0.765 中文绿色注册版
Notepad--(文本编辑器) v3.7.3 官方最新免费版
ultraedit 64位 特别版 v27.10.0.164 中文破解免费版
文本(代码)编辑器(Notepad++) 64位 v8.9.6 多语中文安装版
淘宝宝贝描述编辑器 v1.0.11 中文安装版
Office Tab Enterprise v14.50 中文无限制特别版(附注册机生成激
LED图文编辑软件LedshowTW 2017 v23.08.16.00 官方中文安装版(附
Scrivener(写作软件) v3.1.6.0 中文多语免费版 32位
UltraEdit(代码编辑器) v28.10.0.26 64位中文绿色已激活版
相关文章
-
材料星(ai写作工具) v1.2.1 免费安装版材料星pc端是一款专为体制内工作者打造的智能公文写作助手,具有智能对话、AI辅助创作、联网检索等核心能力,用户可轻松上传文件进行智能解析,还能实时获取网络最新资讯...
-
FeelFish(AI小说写作助手) v3.3.7 免费安装版FeelFish是一款聚焦小说创作全流程的 AI 智能辅助工具,它专为小说创作者打造,同时也支持剧本和非虚构类书籍创作,尤其擅长长篇内容的创作,它面向专业作家设计,基于 Feel...
-
SuperNovelist超级小说家(作家和编剧的AI创作助手) v1.0.44 免费安装版超级小说家紧跟AI发展脚步的先进小说创作助手,一键打破写作瓶颈,生成深度剧情,润色精彩文笔,支持一站式从灵感到成文全流程,支持写作工作流、漫剧视频创作...
-
沁言学术(一站式智能学术研究平台) v1.2.6 免费安装版沁言学术pc端一站式智能学术研究平台,覆盖科研全流程:AI选题、智能文献检索、文献阅读、辅助写作、知识库,助力学术研究效率提升10倍...
-
金舟AI写作 v5.1.5 官方安装版金舟AI写作支持全类型文案生成,快速生成各类场景文本,角色化智能创作,自带提示词优化,帮助问题优化等,欢迎下载使用...
-
QuickClipboard(剪贴板管理工具) v0.3.2 官方安装版QuickClipboard支持自动记录剪贴板历史,支持文本、图片与文件以及支持主题切换、窗口位置记忆、分组管理等多种个性化设置等...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的去除c++多余头文件的工具(cxx clean include) 免费版资源来源互联网,版权归该下载资源的合法拥有者所有。



























