linux - 如何在 makefile 中指定将结果发送到哪里

标签 linux svn makefile latex

现在我有一个 makefile,它在与它相同的目录中构建 .tex 文件 (latex),并输出该文件的 pdf 版本以及一堆行李。我想知道如何在 make 文件中指定将结果发送到哪里。我想将结果发送到我的桌面目录。这是可能吗?我还使用了 clean 函数来清除自动生成的垃圾文件,但它仍然会把它们吐出来。有什么帮助吗?

  PDFLATEX=/usr/texbin/pdflatex
SOURCE=report_Template.tex
RESULT=report_Template.pdf

$(RESULT): $(SOURCE)
        $(PDFLATEX) $(SOURCE)
        $(PDFLATEX) $(SOURCE)

clean:
        rm -f $(RESULT) *.aux *.log *.toc *.out *~

最佳答案

这与 make 无关。您运行的命令将其输出放在您指定的位置。

似乎 pdflatex 在输入旁边创建了输出,因此在您从中运行它(和 makefile)的任何目录中。

您可以在该规则的末尾添加一个 cp 以将文件复制到您想要的任何位置和/或查看 pdflatex 是否具有可以为输出提供的参数文件名。

也就是说,如果您的 make 目标规则没有准确地创建目标文件名,那么这是一个糟糕的规则,可能会给您带来更大的 make 设置麻烦。 (这就是 .PHONY 规则的部分用途。)

clean 不是魔法。它只是一个像其他任何目标一样的目标。您需要运行它才能执行任何操作。

关于linux - 如何在 makefile 中指定将结果发送到哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925687/

相关文章:

c++ - gcc soname 无法识别的命令行

ruby - 如何在 osx 上使用调试符号从源代码编译 ruby​​?

C: undefined reference `dlopen`/`dlsym` 尽管添加了 `-ldl` 标志

linux - 需要将带有图像的子目录的目录转换为 webp

linux - 通过引用发送文件到远程服务器?

执行后无法捕获信号

svn - 如何在每次提交后自动保存SVN修订号?

svn - Products.Poi 和 Subversion 集成

linux - 从 hdparm 输出中提取信息

svn - Jenkins 和 SVN 凭证缓存