编译后使用scons执行二进制文件

问题描述:

我正在使用scons编译2个二进制文件。汇编分两个阶段进行。第一个二进制文件的编译和执行生成编译第二个二进制文件所需的文件。编译后使用scons执行二进制文件

每个编译都是通过单独的Environment()完成的。 SConstruct文件的相关部分看起来是这样的:

env_gen.Program('#gen', gen_src) 
env_gen.Command(ker_src + generated_src, "./gen") 
env_ker.Program('#ker', ker_src + generated_src) 

,我遇到的问题是,即使的“KER”编制的“根”的执行后,会发生,“KER”编辑抱怨缺少生成的文件。

这是因为'ker'的依赖列表是在'.gen'执行之前生成的吗?有没有人知道如何克服这个?

TIA

假设“ker的”依赖于“根”生成的文件,我认为这可能是你想要什么:

GENERATED_FILES = env_gen.Command(ker_src + generated_src, "./gen") 
env_ker.Depends(GENERATED_FILES) 
env_ker.Program('#ker', ker_src + generated_src) 

检查Scons manual的具体使用ENV明确定义的依赖.Depends()