在 Windows 上使用 MSYS 在 makefile 中使用 rm
Using rm in a makefile on Windows with MSYS
我的 makefile 中有以下代码,用于在成功编译 tex 文件后删除我不想保留的文件。
grep '^OUTPUT ' $*.fls \
| sed -e 's/^OUTPUT //' \
| grep -vx $@ \
| xargs rm
rm $*.fls
rm -f $*.bbl $*.blg
pdf生成成功后出现如下错误
rm: cannot remove `00_Master_Thesis.log': Permission denied
rm: cannot remove `00_Master_Thesis.nlo': Permission denied
rm: cannot remove `00_Master_Thesis.aux': Permission denied
rm: cannot remove `00_Master_Thesis.out': Permission denied
make.exe": *** [00_Master_Thesis.pdf] Error 123
我尝试添加几个命令来获得删除这些文件的权限,并检查了包含这些文件的文件夹的权限。我也尝试以管理员身份启动 cmd,但似乎没有任何帮助。
同一个 makefile 在我的 Ubuntu 系统上运行良好。
我怎样才能让 make 也删除 Windows 上的那些文件?
编辑:
问题似乎是,pdflatex.exe 在写入 pdf 后没有退出。我什至无法手动删除这些文件,因为根据 windows 资源管理器,它们仍在 pdflatex.exe.
中打开
在我杀死 pdflatex.exe 之后,错误信息改变了,现在只显示:
rm: cannot remove `00_Master_Thesis.log': Permission denied
make.exe": *** [00_Master_Thesis.pdf] Error 123
现在除了日志文件之外,只有 *.log、*.bbl、*.blg、*.fls、*.ilg 和 *.nls 文件不会被删除。 *.aux、*.out 和 *.nlo 文件在 make 完成后就永远消失了,这至少是朝着正确方向迈出的一步。 ^^
我怎样才能 pdflatex.exe 退出或释放文件以便 rm 可以删除它们?
根据 的建议,尝试添加两个选项:
-halt-on-error
和 -interaction batchmode
,
那么应该可以了。
我的 makefile 中有以下代码,用于在成功编译 tex 文件后删除我不想保留的文件。
grep '^OUTPUT ' $*.fls \
| sed -e 's/^OUTPUT //' \
| grep -vx $@ \
| xargs rm
rm $*.fls
rm -f $*.bbl $*.blg
pdf生成成功后出现如下错误
rm: cannot remove `00_Master_Thesis.log': Permission denied
rm: cannot remove `00_Master_Thesis.nlo': Permission denied
rm: cannot remove `00_Master_Thesis.aux': Permission denied
rm: cannot remove `00_Master_Thesis.out': Permission denied
make.exe": *** [00_Master_Thesis.pdf] Error 123
我尝试添加几个命令来获得删除这些文件的权限,并检查了包含这些文件的文件夹的权限。我也尝试以管理员身份启动 cmd,但似乎没有任何帮助。
同一个 makefile 在我的 Ubuntu 系统上运行良好。 我怎样才能让 make 也删除 Windows 上的那些文件?
编辑:
问题似乎是,pdflatex.exe 在写入 pdf 后没有退出。我什至无法手动删除这些文件,因为根据 windows 资源管理器,它们仍在 pdflatex.exe.
中打开在我杀死 pdflatex.exe 之后,错误信息改变了,现在只显示:
rm: cannot remove `00_Master_Thesis.log': Permission denied
make.exe": *** [00_Master_Thesis.pdf] Error 123
现在除了日志文件之外,只有 *.log、*.bbl、*.blg、*.fls、*.ilg 和 *.nls 文件不会被删除。 *.aux、*.out 和 *.nlo 文件在 make 完成后就永远消失了,这至少是朝着正确方向迈出的一步。 ^^
我怎样才能 pdflatex.exe 退出或释放文件以便 rm 可以删除它们?
根据
-halt-on-error
和 -interaction batchmode
,
那么应该可以了。