1
规则生成的文件为need
的正确方法是什么?下面是我的尝试:取决于生成的文件
import Development.Shake
import System.IO
import Control.Monad
main = do
s <- withBinaryFile "/dev/urandom" ReadMode $ replicateM 10 . hGetChar
shakeArgs shakeOptions $ do
want ["a.out"]
"generated" *> \target -> writeFileChanged target s
"*.out" *> \out -> do
need ["generated"]
writeFile' out =<< readFile' "generated"
但是,这导致规则generated
没有得到重新运行,所以a.out
保持不变,经过反复运行。
的确,“* .out”规则的'writeFile''和''generated''的生成都是存在于更多涉及操作中的存根。 – Cactus 2014-09-30 02:29:46