我正在使用scons编译2个二进制文件。编译分两个阶段进行。第一个二进制文件的编译和执行生成编译第二个二进制文件所需的文件。
每个编译都通过单独的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'的编译发生在执行'gen'之后,'ker'编译会抱怨缺少生成的文件。
这是因为'ker'的依赖列表是在执行'./gen'之前生成的吗? 有谁知道如何克服这个?
TIA
答案 0 :(得分:0)
假设“ker”取决于“gen”生成的文件,我想这可能是你想要的:
GENERATED_FILES = env_gen.Command(ker_src + generated_src, "./gen")
env_ker.Depends(GENERATED_FILES)
env_ker.Program('#ker', ker_src + generated_src)
使用env.Depends()
检查Scons manual有关显式定义依赖关系的详细信息