为什么下面这个正确 rake 一次后,源码不动,再次执行 rake 总会触发:main 这个任务? file "main" => OBJFILES do |t| sh "gcc -o #{t.name} main.o a.o b.o" end
像下面这个就是正确的,如果 a.c 上次编译过后没改动,就不需触发 file "a.o" => ["a.c"] do |t| src = t.name.sub(/.o$/, '.c') sh "gcc #{src} -c -o #{t.name}" end
求教,为什么?如何解决?