2010-11-04 79 views
1

我正在使用scons編譯2個二進制文件。彙編分兩個階段進行。第一個二進制文件的編譯和執行生成編譯第二個二進制文件所需的文件。編譯後使用scons執行二進制文件

每個編譯都是通過單獨的Environment()完成的。 SConstruct文件的相關部分看起來是這樣的:

env_gen.Program('#gen', gen_src) 
env_gen.Command(ker_src + generated_src, "./gen") 
env_ker.Program('#ker', ker_src + generated_src) 

,我遇到的問題是,即使的「KER」編制的「根」的執行後,會發生,「KER」編輯抱怨缺少生成的文件。

這是因爲'ker'的依賴列表是在'.gen'執行之前生成的嗎?有沒有人知道如何克服這個?

TIA

回答

0

假設「ker的」依賴於「根」生成的文件,我認爲這可能是你想要什麼:

GENERATED_FILES = env_gen.Command(ker_src + generated_src, "./gen") 
env_ker.Depends(GENERATED_FILES) 
env_ker.Program('#ker', ker_src + generated_src) 

檢查Scons manual的具體使用ENV明確定義的依賴.Depends()