|
|
1
8
好的,我想我已经搞清楚了发生了什么-我错误地假设SCons记录它创建的那些文件(作为目标),然后在随后的“清理”过程中使用这个记录的列表。这当然没有道理。 SCons实际做的是重新运行所有依赖规则并创建一个新的依赖树。它使用它来确定要清理哪些文件。因为我有os.path.exists()条件,这意味着build-info.xml从未添加到Clean列表中,因为它在运行Clean时总是存在的。 原来env.Clean() 正常工作,因为它将删除所有这样的文件,这仅仅是因为SCons在第二次运行(使用--clean)时无法知道特定的build-info.xml文件已经生成而不是已经存在。 解决这个问题的方法是在生成的文件旁边创建一个sentinel文件。但就目前而言,我对斯科恩廉洁行为的新理解就足够了。 |
|
|
Mayka · 通过带条件的生成器表达式指定两个变量? 8 年前 |
|
Bram Vanroy · 在列表之间获取唯一的产品并维护输入顺序 8 年前 |
|
|
David Trinh · js生成器存在异步问题,并承诺不会返回结果 8 年前 |