建立.proto并移动.h

时间:2013-10-18 11:33:18

标签: c++ protocol-buffers scons

我正在尝试从我的.proto生成C文件 我能够做到但它们是在同一个文件夹中生成的。在此之后,我需要将.h文件移动到我的include目录中 此时我正在使用ProtoC Builder,但没有选项将.h提供到另一个文件夹中。所以我试图在以下之后做一个命令移动:

proto_files = localenv.Protoc(
    [],
    protoList,
    PROTOCPROTOPATH=[builddir],
    PROTOCPYTHONOUTDIR=None, # set to None to not generate python
    PROTOCOUTDIR = builddir, # defaults to same directory as .proto
    # PROTOCCPPOUTFLAGS = "dllexport_decl=PROTOCONFIG_EXPORT:", too
)
localenv.Command(proto_files[1], proto_files[1],
               [
                Move("$SRC",incFolder+"/$TARGET"),
               ])

但是当我运行scons时出现以下错误:

  

scons: * 指定了两个具有不同操作的环境   同一目标:

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您不能拥有目标和源相同的Command(或任何Builder)。 SCons将如何知道它是否是最新的,即该构建器是否需要运行?

也许试试:

tgt = localenv.Command(os.path.join(incFolder, proto_files[1]), proto_files[1],
               [
                Move("$SRC","$TARGET"),
               ])

如果这不起作用,请添加完整的错误消息(这次包括目标名称)。