scons:如何指定对外部构建目标的依赖?

时间:2017-07-09 04:05:27

标签: python dependencies sequence scons protoc

我使用protobuf从。 proto 文件生成.cc / .h文件。所以我的SConscript如下:

env.protoc('my.proto')
env.Program(target='pb_my',    CCFLAGS="-I.",   
        source=['pb_my.cpp',    'my.pb.cc'],       LIBS='protobuf')

我发现," env。" SConscript中的命令不是按顺序执行的(这就是为什么可以使用scons -j20并行构建目标)。但有时问题是,因为" pb_my"应该在我生成" my.pb.cc"之后构建。来自" my.proto",scons将报告错误,第二行是先执行。

那么如何指定第二行的目标应该只在第一行完成后才能执行?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您无法直接在scons中指定订单。

正确的方法是确保指定依赖项。

请包含protobuf构建器的代码?

如果你的protobuf构建器输出的文件在生成之前正在编译,你的protobuf构建器就不会指定它们。

另外,请在您的问题中添加scons --tree = prune的输出。