Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 更改.c文件的注释时,scons是否仍要重新编译它?_Linux_Gcc_Dependencies_Scons_Rebuild - Fatal编程技术网

Linux 更改.c文件的注释时,scons是否仍要重新编译它?

Linux 更改.c文件的注释时,scons是否仍要重新编译它?,linux,gcc,dependencies,scons,rebuild,Linux,Gcc,Dependencies,Scons,Rebuild,据说,scons使用MD5签名作为默认决策器来确定源文件是否需要重新编译。例如,我得到的结构如下: Library('o.c') 我的营业执照是: $ cat o.c /*commented*/ #include<stdio.h> int f(){ printf("hello\n"); return 2; } 如果我将SConstruct文件更改为添加一行: Decider('MD5'). 还是一样的结果 我的问题是:如何

据说,scons使用MD5签名作为默认决策器来确定源文件是否需要重新编译。例如,我得到的结构如下:

Library('o.c')
我的营业执照是:

$ cat o.c
    /*commented*/
    #include<stdio.h>
    int f(){
      printf("hello\n");
      return 2;
    }
如果我将SConstruct文件更改为添加一行:

Decider('MD5').
还是一样的结果

我的问题是:如何确保SCON在更改源文件注释时不会重新构建它们


谢谢

正如您正确指出的那样,SCons使用源文件的MD5哈希和来确定其是否已更改(基于内容),并且似乎需要重建目标(因为其依赖项之一已更改)。 通过添加或更改注释,文件的MD5和会发生更改…因此触发


如果你不喜欢这种行为,你可以编写并使用你自己的Decider函数,它将忽略你喜欢的注释更改。请查看中的第6.1.4节“编写您自己的自定义决策器函数”,以了解如何做到这一点。

正如您正确指出的,SCons使用源文件的MD5哈希和来确定其是否已更改(基于内容),并且似乎需要重建目标(因为其依赖项之一已更改)。 通过添加或更改注释,文件的MD5和会发生更改…因此触发

如果你不喜欢这种行为,你可以编写并使用你自己的Decider函数,它将忽略你喜欢的注释更改。请查看中的第6.1.4节“编写您自己的自定义决策器函数”,了解如何做到这一点

Decider('MD5').