当预处理器完成从修改的文件中删除注释时,构建链可以首先检查输出是否实际改变.如果没有,它应该像文件本身没有改变一样.
我使用Visual Studio 2010 btw.
编辑:@MikeSeymour,VS的cl.exe有一个切换/ Gm进行最小的重建.它没有很好的记录,但我认为这有点要我做.但是它与使用多个内核的/ MP交换机不兼容.在我的双核(w /超线程)上,/ Gm将需要跳过平均4个单位中〜3个的编译.虽然我觉得是这样的,但我甚至不知道如何评估/ Gm是否值得.
解决方法
这种谓词的良好近似存在,使用我们的SmartDifferencers系列工具的形式,比较源代码文件,使用源代码结构的深层知识(例如生产解析器).特别是,SmartDifferencer会根据对语言结构的更改(例如标识符,语句,声明,块)和合理的编辑操作(插入,替换,删除,移动,重命名,重命名等)显示源代码的更改. ).它不对布局或评论感兴趣(除非你强制它).所以很容易得到SmartDifferencer来判断一个源代码文件是否改变了一些除了注释或空格之外的东西. SmartDifferencers存在各种各样的语言.
现在,你如何让构建系统进行合作? Unix在谓词上创建触发器,但不是这样;它实际上是根据与目标相比的文件日期的新近触发实体的构建事件.如果SmartDifferencer发现有趣的区别,则可以通过制作这样一个文件来依赖“changed_signal”文件来伪造它.
原文地址:https://www.jb51.cc/c/114758.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。