我使用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将报告错误,第二行是先执行。
那么如何指定第二行的目标应该只在第一行完成后才能执行?
非常感谢。
答案 0 :(得分:1)
您无法直接在scons中指定订单。
正确的方法是确保指定依赖项。
请包含protobuf构建器的代码?
如果你的protobuf构建器输出的文件在生成之前正在编译,你的protobuf构建器就不会指定它们。
另外,请在您的问题中添加scons --tree = prune的输出。