Ich bin Tring eine Quelldatei zu erzeugen und die erzeugte Datei verwenden zu kompilieren ..SCons versagt Datei generiert finden
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)
die gen wird demo.cc erforderlich erzeugen
gen = env.Command ("/ tmp/dummy", "demo.json", "demo.py $ SOURCE> $ TARGET")
Aber Fehler, wenn Demo Kompilieren Sie wie folgt vor:
fehlgeschlagen: Quelle demo.o '.
Durch ls demo.cc bin ich sicher, dass die erforderliche Datei demo.cc tatsächlich im richtigen Verzeichnis generiert wird.
Die Ursache sollte etwas mit Abhängigkeit sein. Beachten Sie, dass ich explizite Abhängigkeit der Bin auf demo.cc. Immer noch fehlgeschlagen.
Irgendwelche Ideen warum?
===== ===== Weitere Details
Jeder bereinigter Build, das heißt scons -c & & scons -j4 arbeitet. Aber das Erstellen eines Nachworts schlägt selbst mit der Datei demo.cc fehl.
Das Problem ist, dass demo.cc nicht die Ausgabe von demo.py ist. demo.py erzeugt intern viele Dateien, demo.cc ist einer von ihnen. – FaceBro
Und wie erwarten Sie, dass SCons das wissen? Was Sie eigentlich brauchen, ist ein Emitter, der alle von Ihrem Befehl erzeugten Zieldateien zurückgibt. Sehen Sie sich unseren [ToolsForFools Guide] (https://bitbucket.org/scons/scons/wiki/ToolsForFools) an, wo Sie ein Beispiel dafür finden können. – dirkbaechle
wird später überprüfen. Was ist das Problem meiner derzeitigen Methode? Ich benutze immer und hängt ab, um die Abhängigkeit explizit anzugeben, immer noch nicht funktioniert? – FaceBro