加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C构建设置以忽略注释中的更改

发布时间:2020-12-16 05:27:48 所属栏目:百科 来源:网络整理
导读:是否可以以这样的方式设置构建链,以便忽略注释(或空格)中的任何更改?例如,每当头文件中的注释被更改时,包括它的每个源文件都被重新编译,即使完全不必要. 当预处理器完成从修改的文件中删除注释时,构建链可以首先检查输出是否实际改变.如果没有,它应该像文件
是否可以以这样的方式设置构建链,以便忽略注释(或空格)中的任何更改?例如,每当头文件中的注释被更改时,包括它的每个源文件都被重新编译,即使完全不必要.

当预处理器完成从修改的文件中删除注释时,构建链可以首先检查输出是否实际改变.如果没有,它应该像文件本身没有改变一样.

我使用Visual Studio 2010 btw.

编辑:@MikeSeymour,VS的cl.exe有一个切换/ Gm进行最小的重建.它没有很好的记录,但我认为这有点要我做.但是它与使用多个内核的/ MP交换机不兼容.在我的双核(w /超线程)上,/ Gm将需要跳过平均4个单位中?3个的编译.虽然我觉得是这样的,但我甚至不知道如何评估/ Gm是否值得.

解决方法

是.您必须拥有构建系统,如果某些谓词为true,则可以触发构建事件.你想要的是一个谓词,说“这个文件以一种语义有趣的方式改变了”.

这种谓词的良好近似存在,使用我们的SmartDifferencers系列工具的形式,比较源代码文件,使用源代码结构的深层知识(例如生产解析器).特别是,SmartDifferencer会根据对语言结构的更改(例如标识符,语句,声明,块)和合理的编辑操作(插入,替换,删除,移动,重命名,重命名等)显示源代码的更改. ).它不对布局或评论感兴趣(除非你强制它).所以很容易得到SmartDifferencer来判断一个源代码文件是否改变了一些除了注释或空格之外的东西. SmartDifferencers存在各种各样的语言.

现在,你如何让构建系统进行合作? Unix在谓词上创建触发器,但不是这样;它实际上是根据与目标相比的文件日期的新近触发实体的构建事件.如果SmartDifferencer发现有趣的区别,则可以通过制作这样一个文件来依赖“changed_signal”文件来伪造它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读