【问题标题】:scons: how to specify dependency to an external build target?scons:如何指定对外部构建目标的依赖?
【发布时间】:2017-07-09 04:05:27
【问题描述】:

我正在使用 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')

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

那么我怎样才能指定第二行的目标只能在第一行完成后执行呢?

非常感谢。

【问题讨论】:

    标签: python dependencies sequence scons protoc


    【解决方案1】:

    你不能直接在scons中指定顺序。

    正确的方法是确保指定了依赖关系。

    请包含您的 protobuf 构建器的代码?

    如果您的 protobuf 构建器输出的文件在生成之前正在编译,您的 protobuf 构建器可能没有指定它们。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多