SCons未能找到生成的文件
我打算生成一些源文件,并使用生成的文件进行编译..
gen = env.Command("/tmp/dummy", "demo.json","demo.py $SOURCE > $TARGET")
env.AlwaysBuild(gen)
bin=env.Program(target='demo', source=[Glob("*.cc")])
env.Depends(bin, gen)
该gen将生成所需的demo.cc
gen = env.Command(“/ tmp / dummy”,“demo.json”,“demo.py $ SOURCE> $ TARGET”)
但编译演示时出现如下错误:
失败:源demo.cc' not found, needed by target
demo.o demo.cc' not found, needed by target
'。
通过ls demo.cc,我确信所需的文件demo.cc确实是在正确的目录中生成的。
原因应该是依赖的东西。 注意到我指定了demo.cc上bin的显式依赖关系。 仍然失败。
任何想法为什么?
=====更多细节=====
每个干净的版本,即scons -c && scons -j4,都可以工作。 但即使在demo.cc文件存在的情况下,后缀构建也会失败。
你告诉SCons你的env.Command()
的结果(= target env.Command()
是“ /tmp/dummy
”。 尝试使用
gen = env.Command("demo.cc", "demo.json","demo.py $SOURCE > $TARGET")
相反,这样SCons可以自动获取依赖关系。 你不需要显式的Depends()
。