我知道这是一个基本问题,但我错过了有关makefile的基本知识。GNU-Make:如何将文件从源文件复制到目标
把这个简单的规则/动作:
doc: ${SRC_DIR}/doc/dir1/file1.pdf ${SRC_DIR}/doc/dir1/file2.pdf
cp $? ${DEST_DIR}/doc/
我第一次运行它,它复制file1.pdf和file2.pdf到目的地/ doc目录。完善。我期待下一次运行它,因为它什么都不做。源文件没有改变,不是它们的依赖吗?但是当我运行时,我得到:
cp:无法创建常规文件.....:权限被拒绝。
所以,2个问题: 1)为什么它试图再次做到这一点?当我运行make -d时,我发现它最终会说:不需要重新制作目标.../file1.pdf和.../file2.pdf,但是然后 它说:必须重新制作目标'doc'
如果它不' t需要制作pdf文件,为什么需要制作文档?
2)说pdf文件已经在源代码中发生了变化,它们只能读取,所以它会得到权限被拒绝的错误。你如何解决这个问题?
则可能是您没有权限来写,但你有权更改权限......在这种情况下,你可以在复制之前,使用命令'chmod u + w'为文件写入权限。如果这不起作用,那么正如Mike所说,这是一个系统管理员问题。 –
MadScientist
非常感谢你们! –
@ M.E.A欢迎来到Stackoverflow!请参阅[当某人回答我的问题时该怎么办?](http://stackoverflow.com/help/someone-answers) –