我正在尝试从我的.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: * 指定了两个具有不同操作的环境 同一目标:
有什么想法吗?
答案 0 :(得分:1)
您不能拥有目标和源相同的Command(或任何Builder)。 SCons将如何知道它是否是最新的,即该构建器是否需要运行?
也许试试:
tgt = localenv.Command(os.path.join(incFolder, proto_files[1]), proto_files[1],
[
Move("$SRC","$TARGET"),
])
如果这不起作用,请添加完整的错误消息(这次包括目标名称)。