我正在处理一个非常古老的大型VC6 ++项目,这一切都搞砸了。在任何地方都有未使用的文件和文件夹,文件夹的副本,只是在当前状态下手动清理它们而已。清理一个VC++ 6项目
它会最终完成,但有没有简单的方法来检查干净的编译时使用什么文件和文件夹?
项目设置并不能帮助我,因为它只是使用文件夹和其他包含目录的副本。
有什么建议吗?
我正在处理一个非常古老的大型VC6 ++项目,这一切都搞砸了。在任何地方都有未使用的文件和文件夹,文件夹的副本,只是在当前状态下手动清理它们而已。清理一个VC++ 6项目
它会最终完成,但有没有简单的方法来检查干净的编译时使用什么文件和文件夹?
项目设置并不能帮助我,因为它只是使用文件夹和其他包含目录的副本。
有什么建议吗?
VC6会产生一个makefile你:
你可以使用生成的生成文件(和关联的.dep
文件)作为起点并将其编辑到构建中使用的文件列表。
除了构建日志中可能显示的.c
/.lib
文件之外,您还可以看到项目所依赖的头文件。有一点要记住,你可能也想确保你跟踪.dsw
和.dsp
工作区和项目文件。
如果你有点冒险,你可以说服makefile实际上将源文件复制到其他位置,并使用适当的覆盖特定的宏和/或依赖关系。但是这可能比一次性努力的价值更麻烦。
最后,有一个商业产品,CopyWiz by Kinook Software,似乎有可能做你想要的功能(并且它支持VC++ 6)。注意:我不确定它是否会按照您的要求做,但可能值得一看。
我写了一个解析makefile的小工具,它是一个非常棒的解决方案。非常感谢你! – John
是的。从SysInternals运行进程监视器。它可以捕获所有文件系统事件并根据路径和其他因素对其进行过滤。
因此,将过滤器设置为源树的根目录,只有成功读取文件(VC会在很多地方查找标头)并构建项目。您可能仍会看到数千个事件。因此,将它们保存到文件,排序路径,并删除重复的路径(头特别是将有许多重复的条目)
在linux下,我只是建立一些东西,并检查最后访问的文件的时间戳,不知道Windows是否有类似的东西。 – PlasmaHH
Visual C++ 6? (/我检查当前日期)...在2011年... ...对于您的问题,请删除除DSW和DSP文件以外的所有内容,然后尝试编译。对于每个错误,请将编译器所需的ONE文件放回原处,然后重试。最后,你将只有该项目所需的东西... – paercebal
这个问题是非常类似于http:// stackoverflow。com/questions/1301850/tools-to-find-included-headers-which-are-unused – dip