C++ 建筑。原型和移动。h

C++ 建筑。原型和移动。h,c++,protocol-buffers,scons,C++,Protocol Buffers,Scons,我正在尝试从.proto生成C文件。 我可以这样做,但它们是在同一个文件夹中生成的。在此之后,我需要将.h文件移动到include目录中。 目前我正在使用ProtoC Builder,但没有将.h提交到其他文件夹的选项。因此,我尝试在如下内容后执行命令移动: proto_files = localenv.Protoc( [], protoList, PROTOCPROTOPATH=[builddir], PROTOCPYTHONOUTDIR=None, # set

我正在尝试从.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"),
               ])
但当我运行SCON时,出现以下错误:

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

有什么想法吗?

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

也许可以试试:

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

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

我把周围的变量弄得有点乱,可以用解决方案解决问题。谢谢