0
我特林生成一些源文件,並使用生成的文件進行編譯..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)
的創會生成所需demo.cc
根=
01:env.Command( 「/ tmp目錄/空」, 「demo.json」, 「demo.py $ SOURCE> $ TARGET」)
但在編譯時演示如下得到錯誤
失敗:來源
demo.cc' not found, needed by target
demo.o'。
通過ls demo.cc,我確定所需的文件demo.cc確實是在正確的目錄中生成的。
原因應該是依賴性的東西。注意到我指定了demo.cc上bin的顯式依賴關係。仍然失敗。
任何想法爲什麼?
=====更多細節=====
每一個乾淨的構建,即scons的-c & & scons的-j4,工作。但即使在demo.cc文件存在的情況下,後綴構建也會失敗。
問題是demo.cc不是demo.py的輸出。 demo.py會在內部產生很多文件,demo.cc就是其中之一.. – FaceBro
你如何期待SCons知道這一點?你真正需要的是一個Emitter,它會返回你的命令創建的所有目標文件。看看我們的[ToolsForFools指南](https://bitbucket.org/scons/scons/wiki/ToolsForFools),你可以在這裏找到一個例子。 – dirkbaechle
將在稍後檢查。我現在的方法有什麼問題?我總是使用並依賴於顯式指定依賴項,仍然無法工作? – FaceBro