我有一個生成器看起來像這樣:
sFooBuilder = Builder(action = os.path.join(rBuildPath, 'foo_binary') + ' $SOURCE',
suffix = '.c',
src_suffix = '.foo'
)
由於二元我靠不採取$ TARGET參數並會產生一個執行錯誤,否則我只指定一個$ SOURCE參數。 會發生什麼情況是將二進制文件的輸出文件放在src目錄中而不是變體dir中。然而,SCons期望變體目錄中的輸出文件。
您呼叫scons的每一次,構建目標上方因執行以下操作:
scons: building `variant_dir/foo.c' because it doesn't exist
而只是通過一個命令生成的文件複製到變種目錄無法正常工作或
scons: warning: Two different environments were specified for target foo.c,
but they appear to have the same action: foo_binary $SOURCE
File "sconscript",
scons: *** Multiple ways to build the same target were specified for: foo.c foo.foo'] and from ['foo.c'])
File "/sconscript",
我的問題是,如果這是預期的行爲?
是否有任何建議(除了修復使用的二進制文件)如何解決這種情況?不幸的是,我找不到任何涉及上述情況的文件。
在此先感謝!
您有邏輯錯誤。您有多個構建命令來創建相同的目標。我無法多說,因爲在完成構建腳本的完整列表後,可能會發現某些錯誤。 – Torsten 2012-08-07 07:00:24